首页
学习
活动
专区
圈层
工具
发布

自己写的验证码才最安全:WordPress登录防护指南

本文转自:天海博客“纸上得来终觉浅,绝知此事要躬行。” —— 陆游《冬夜读书示子聿》在互联网的世界里,网站就像一座城堡,而登录界面则是它的正门。...unset($_SESSION['captcha_question']); } } 该文件拥有以下功能:启动Session添加验证码功能到登录界面注册重写规则以隐藏真实路径添加自定义查询变量引用输出验证码图片验证用户输入的验证码在...在includes/路径下创建文件夹fonts,将SimHei.ttf字体文件放入fonts文件夹中。...验证码图片 URL 缓存问题原因:浏览器缓存导致一直显示旧验证码解决方法:在图片 URL 加时间戳:?t=1234567890*** 总结:从零到一,完成自己的安全插件!...回顾一下我们做了什么:创建插件结构,设置插件基本信息生成随机数学题,保存答案到 Session动态生成验证码图片在登录表单中插入验证码字段和图片使用 WordPress 重写规则隐藏图片路径在登录流程中验证用户输入添加前端提示

19410

迁移 valine 评论数据至 wordpress 数据库

(ctrl+enter 或 \n)替换为 },+换行符,最后使用 [] 将所有对象包裹即可。...使用的是 mysql 数据库,那么json是不能直接用的,所以需要再到上述网站将 json 转换为 sql 格式,最后在 phpmyadmin 中导入 sql 数据到 wordpress 数据库。...关联文章页面 首先我们需要利用 valine 中提供的 url 字段来分别匹配 wordpress 数据库中对应的文章 slug 别名的文章id(也就是把 url 转换为其文章对应的 comment_post_ID...一点需要注意的是需要修改 $url 变量规则为你自己的 url 别名匹配规则)。 在 5s) 导入完成后将处理好的数据表右键转储为 sql 文件(包含数据和结构)导出为 sql 后再导入到 wordpress 数据库即可覆盖 wp_comments 数据表即可

67200
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WordPress 5.0 RCE 详细分析

    (WordPress 5.1-alpha-44280) 2、通过图片的裁剪功能,将裁剪后的图片写到任意目录下(目录穿越漏洞) 在WordPress的设定中,图片路径可能会收到某个插件的影响而不存在,如果目标图片不在想要的路径下时...,WordPress就会把文件路径拼接为形似http://127.0.0.1/wp-content/uploads/2019/02/2.jpg 的url链接,然后从url访问下载原图 如果我们构造?...在WordPress的设定中,图片路径可能会受到某个插件的影响而不存在,如果目标图片不在想要的路径下时,WordPress就会把文件路径拼接为形似 http://127.0.0.1/wp-content...在写入的目标目录下,存在一个假目录,为1.jpg? 而linux、mac支持这种假目录,可以使用?号 但windows在路径中不能有?...在安全程度极高的WordPress中能完成这种的攻击利用链相当难得,从任何角度都是一个非常nice的漏洞:> 最后再次感谢我的小伙伴们以及整个过程中给我提供了很大帮助的朋友们:>

    1.4K00

    Wordpress 5.0 RCE详细分析

    (WordPress 5.1-alpha-44280) 2、通过图片的裁剪功能,将裁减后的图片写到任意目录下(目录穿越漏洞) 在WordPress的设定中,图片路径可能会收到某个插件的影响而不存在,如果目标图片不在想要的路径下时...,WordPress就会把文件路径拼接为形似http://127.0.0.1/wp-content/uploads/2019/02/2.jpg 的url链接,然后从url访问下载原图 如果我们构造?...在WordPress的设定中,图片路径可能会受到某个插件的影响而不存在,如果目标图片不在想要的路径下时,WordPress就会把文件路径拼接为形似http://127.0.0.1/wp-content/...在写入的目标目录下,存在一个假目录,为1.jpg? 而linux、mac支持这种假目录,可以使用?号 但windows在路径中不能有?...在安全程度极高的WordPress中能完成这种的攻击利用链相当难得,从任何角度都是一个非常nice的漏洞:>

    1.5K20

    WordPress插件设计

    一、WordPress介绍 如果是Php开发的同学,或者对博客和CMS有一定了解的同学都知道这个,以下是百度的解释: WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用...PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。...1、关于安装和反安装 WordPress中这两个概念比较淡,取而代之的是启用和禁用,因为默认插件是不启用的,反正只有一次执行机会,最终效果差不多,只要概念上保持一致。...4、注册api 想自己注册路由,在系统中添加新的api接口的话,WordPress也是支持的 add_rewrite_rule('post/([0-9a-zA-Z\-_,]+)/([0-9a-zA-Z...中使用最多的钩子,最终实现机制差不多,都是先声明,然后在代码中使用的地方调用相关回调/钩子,最后插件可以针对自己感兴趣的action/filter注册相关的回调。

    98930

    大胆尝试 | 不懂php用ai-kimi花2小时写一个wordpress网站的采集微信文章的插件

    然后在WordPress后台的“Article Collector”菜单下输入目标文章的链接,点击“Collect Article”按钮,插件将获取正确的标题、正文内容,并处理文章中的图片资源,然后将文章成功采集到您的...定位获取相应元素内容,并保留源页面的样式和排版,然后将文章成功采集到您的WordPress网站中。...kimi:以下是补充的代码段,用于处理文章内容:“`php// 处理文章内容…// 可以在这里对内容进行进一步处理,例如去除特定标签、添加样式等// 这里只是简单示例,将内容中的所有图片标签替换为带有样式的图片...>/’, ‘’, $content);“`在这段代码中,我们简单地对文章内容进行处理,将所有图片标签替换为带有样式的图片...;}}“`现在,这个函数可以从$html中采集标题、正文内容和图片,并将内容发布到WordPress中。如果您有任何其他问题或需要进一步帮助,请告诉我。

    88210

    bloginfo()用法小结|wordpress函数

    bloginfo()显示关于您的wordpress站点的信息,主要是从您的用户配置文件和WordPress管理屏幕的一般设置中收集的信息。它可以在模板文件的任何地方使用。这总是将结果打印到浏览器。...'wpurl' - 显示在 设置 > 常规 中设置的 “WordPress 地址 (URL)”。该数据是从 wp_options 这个数据表中检索到的 "siteurl" 记录。...可以考虑使用 site_url() 来代替,尤其是在使用 子目录路径方式,而不是使用 子域名 来配置多站点时(bloginfo将返回根网站的URL,而不是子站点的URL)。...'url' - 显示在 设置 > 常规 中设置的 “站点地址(URL)”)”。该数据是从 wp_options 这个数据表中检索到的 "home"记录。 可以考虑使用 home_url() 代替。...'stylesheet_url' - 显示当前使用的主题的 CSS文件(通常为 style.css)路径。可以考虑使用 get_stylesheet_uri() 代替。

    1.1K10

    WordPress5.0 远程代码执行分析

    在 edit_post 方法中,我们看到可控的 $post_data 变量,其数据来源于 $_POST ,紧接着将可控的 $post_data 变量传入 wp_update_post 方法,具体代码如下...更新前后, Mysql 中攻击者上传的图片对应的元信息变化如下: ? 至此,我们只是完成了将恶意路径插入数据库中,接下来我们还要让它发挥作用。...在 wp_ajax_crop_image 方法中,根据 POST 中的 id 来校验 ajax 请求数据以及判断是否有权限编辑图片,然后将 $_POST['cropDetails'] 中的数据传入 wp_crop_image...然后判断图片是否存在,不存在,则使用 URL 形式获取图片(下图 第8-9行 )。...根据注释内容可知, get_page_template_slug 函数会根据传入的 $post 变量,从数据库中查询并返回其对应的模板文件名。

    1.5K30

    针对WordPress的攻击调查

    当有效负载/命令/代码编码在COOKIES或POST数据中时,通过使用GET或POST请求来完成部署。解码程序会部署在先前的后门中。还观察到攻击者会patch已经存在的.php文件使恶意请求更加隐蔽。...首先,记录所有可写路径,随机选择合适的路径,然后patch所选文件。 ? 在本例中,将修补程序功能应用于index.php,以在Unix隐藏文件(点文件)中包含恶意脚本,扩展名为.ico。 ?...alfashell还能够从WordPress配置文件中获取数据库凭据,转储数据库,以及获取所有虚拟域和DNS设置。 ?...感染WordPress网站的搜索引擎优化(SEO) 受感染的WordPress站点的另一个实例是搜索引擎优化(SEO),已发现部署的PHP脚本在GET请求中接受关键字。 ?...如果符合,则将$isbot不为零,则将使用相同的关键字向程序中硬编码的URL地址发出另一个HTTP请求。

    2.5K20

    使用Web日志还原攻击路径

    如果没有该日志文件,我们可能永远不会知道有人发现并运行了网站上的受限脚本,从而转储数据库。 在确定了日志文件是一项关键资产之后,让我们通过一个攻击案例来进行web日志安全分析,还原攻击路径。...在筛选之后的结果中,我们会注意到这样一个访问请求: 84.55.41.57 - - [17/Apr/2019:06:52:07 +0100] "GET /wordpress/wp-admin/ HTTP...> access.log记录表明,攻击者使用了SQL注入自动化工具来查找数据库名称,表名称和列,日志中的记录将类似于以下内容: /wordpress/wp-content/plugins/my_custom_plugin...通过日志分析,我们发现了攻击者的攻击路径和安全事件的根本原因:管理员所使用的那款自定义WordPress插件中存在SQL注入漏洞,导致攻击者通过SQL注入漏洞获取管理员账号密码,从而登录管理后台进行网页篡改...修复SQL注入漏洞并清除webshell,从备份文件中恢复被篡改的文件,使网站恢复正常。

    1.8K11

    Docker的镜像

    路径的方式,如果该镜像不是防止在Docker Hub上,而是防止在你自己搭建的或者第三方的Hub上,则使用这种命令方式 TAG:用于区分同一仓库中的不同镜像,如果未指定,默认为latest IMAGE...Dockerfile创建镜像 官方推荐用Dockerfile的方式创建 将需要对镜像的操作全部写到一个文件中 使用docker build命令中创建镜像 Dockerfile文件以行为单位,行首为Dockerfile...ADD 命令的第一个参数用来指定源文件(夹) ,它可以是文件路径、文件夹的路径或网络文件的URL地址。需要特别注意的是,如果是文件路径或文件夹路径,它必须是相对Dockerfile所在目录的相对路径。...如果是一个文件URL,在创建镜像时,会先下载下来,然后再添加到镜像里去。第二个参数是文件需要放置在目标镜像的位置。...如果源文件是主机上zip或者tar形式的压缩文件,Docker会先解压缩,然后将文件添加到镜像的指定位置。如果源文件是一个通过URL指定的网络压缩文件,则不会解压。

    1.8K60

    WordPress主题开发,从入门到精通。

    2.get_template_part get_template_part( slug,  name = null, 要将此功能与主题目录中的子文件夹一起使用,只需在 slug 之前添加文件夹名称即可。...用于将主页面的脚本和样式排入队列。 6.edit_form_after_title 在WordPress撰写文章页面添加一段提示标语的功能。...(),获取活动主题的style.css的完整URL路径; get_theme_file_path(file)、get_theme_file_uri(file) 一样 ,这个函数将返回主题中文件的路径(如果存在...update_option 更新WP设置选项 delete_option,从 WordPress 选项数据表中安全删除“选项/值”对的方法。...esc_url() – 在输出 URL 时,使用此函数,包括在src和href属性中的 URL。 esc_js() – 对内联 JavaScript 使用此函数。

    11.5K40

    利用WordPress REST API 开发微信小程序从入门到放弃

    WordPress REST API WordPress 在4.4 版本开始推出了 REST API,如果你使用的是最新版本的WordPress应该会提供REST API的功能。...的安装路径、Url重写有关,因此WordPress REST API 链接可能有差异,主要差异在WordPress 本身的链接规则上,相同的部分是REST API 路由部分。...(5)”wxParse”文件夹:第三方用于html转wxml的解析库文件。 下面重点介绍”pages”和”utils”文件夹 (注意本文出现的代码,如果复制使用的时候,请把中文引号修改为英文引号。)...”postsList”就是页面数据变量,前端页面(wxml页面)可以使用这个变量来显示数据 在html转换为wxml上还没有完美的解决方案,希望官方能出相关富文本组件。

    3.5K70

    巧用腾讯云轻量应用服务器的对象存储,打造 WordPress 可靠图床

    前言在WordPress性能优化中,对象存储已成为托管图片、CSS、JavaScript等静态资源的黄金标准。...第二步:将存储桶挂载到轻量应用服务器WordPress 的上传目录路径为:站点根目录/wp-content/uploads ,那么存储桶需要挂载的路径也应与之对应。...存储桶挂载目录:这里指的是存储桶中的路径,建议填写 /wp-content/uploads ,这样一来存储桶中的静态资源访问路径与 WordPress 路径相同,方便后续做 URL 改写。...使用宝塔面板的用户,创建的站点默认路径为:/www/wwwroot 目录下,如果不确定绝对路径,可以在“WordPress 后台 > 工具 > 站点健康 > 信息”中查看,如下图:等待大约 1 分钟左右...方法二:在 WordPress 中添加代码如果你不想装插件,可以直接用过滤器 wp_get_attachment_url、wp_calculate_image_srcset、content_url 来统一替换

    25530

    【重识云原生】第六章容器基础6.4.10.3节——StatefulSet实操案例-部署WordPress 和 MySQL

    警告: 在本地集群中,默认的 StorageClass 使用 hostPath 制备程序。hostPath 卷仅适用于开发和测试。...使用 hostPath 卷时,你的数据位于 Pod 调度到的节点上的 /tmp 中,并且不会在节点之间移动。 如果 Pod 死亡并被调度到集群中的另一个节点,或者该节点重新启动,则数据将丢失。...MySQL 容器将 PersistentVolume 挂载在 /var/lib/mysql。 MYSQL_ROOT_PASSWORD 环境变量根据 Secret 设置数据库密码。...WORDPRESS_DB_HOST 环境变量设置上面定义的 MySQL Service 的名称,WordPress 将通过 Service 访问数据库。 ...WORDPRESS_DB_PASSWORD 环境变量根据使用 kustomize 生成的 Secret 设置数据库密码。

    75030

    WordPress 获取 URL 链接路径的几种方法

    其实对于 WordPress 开发方面来讲使用 ID 是最为方便快捷的,但是如果在 WordPress 固定链接中也使用文章 ID 等方式来展现虽然足够简单,却也失去了更加漂亮的 URL 以及关键词优化...子凡最后决定用一种最简单的方式方法,那就是直接使用 URL 链接中的路径来作为小程序的传参,这样只需要将路径和主域名拼凑起来就是完整的 URL 了,小程序规则思路大概如下: https://www.leixue.com...(), '', get_permalink(get_the_ID()) ); 这是一种传统的方法,就是直接通过文章 ID 来获取文章链接,然后使用 home_url()来获取网站首页,通过替换首页为空的方式来实现...), PHP_URL_PATH); 这种方式则是利用 php 的 url 解析函数 parse_url 来获取文章路径,如果 WordPress 安装在二级目录,获取的路径也是包括二级目录路径的。...除非注明,否则均为泪雪博客原创文章,禁止任何形式转载 本文链接:https://zhangzifan.com/wordpress-get-url-path.html

    1.4K90

    WordPress REST API 内容注入漏洞分析

    漏洞简介 在REST API自动包含在Wordpress4.7以上的版本,WordPress REST API提供了一组易于使用的HTTP端点,可以使用户以简单的JSON格式访问网站的数据,包括用户,帖子...漏洞影响版本 WordPress4.7.0 WordPress4.7.1 0x01 漏洞复现 Seebug上已经给出详细的复现过程,在复现过程中可以使用已经放出的POC来进行测试。...路由 路由是用于访问端点的“名称”,在URL中使用(在非法情况下可控,就像这个漏洞一样)。...从代码中可以看出,它是用wp_posts中的get_instance静态方法来获取文章的,跟进wp_posts类,位于/wp-includes/class-wp-post.php中: public static...在这边将ID参数装换为一个整数,然后传递给get_post。而PHP类型转换的时候回出现这样的情况: ? 所以,也就是说,当攻击者发起/wp-json/wp/v2/posts/1?

    3.8K70
    领券