最近发现有人疯狂扫描Wordpress的xmlrpc.php文件及wp-login.php文件,大概是想爆破后台密码或者想撞库获取密码吧。今天,古哥给大家带来Apache通过.htaccess文件,简单几行代码就实现禁止访问xmlrpc.php文件及wp-login.php文件,并返回403的简单方法。
起因
每天,我都会看网站日志文件。然后,凌晨一点自动清理网站日志。可以通过以下命令完成日志的定时清理任务:
crontab -e
输入i进入编辑模式,插入如下代码。完成后,摁下esc退出编辑模式,再摁下:wq退出并报错
* 1 * * * echo > /data/wwwlog/iymark.com/access.log
* 1 * * * echo > /data/wwwlog/iymark.com/error.log
* 1 * * * echo > /data/wwwlog/iymark.com/ssl_access.log
* 1 * * * echo > /data/wwwlog/iymark.com/ssl_error.log
以上即可,每天定时一点清理日志文件(注意修改日志文件目录)
然后,我刚才发现有人在恶意扫描wp-login.php文件,查询恶意扫描ip,提示有撞库风险:撞库即用其他网站的数据库里的账号密码来登录你的网站,就叫撞库。所以,一般建议不同网站用不同密码,也是这个道理。当然,Wordpress除了/wp-login.php可以恶意登录,还有xmlrpc.php文件(用于发送pinback,即当你文章引用别人网站文章时,会自动给对方发送一条pinback,告诉对方你引用了;反之,亦然)可以恶意登录。
.htaccess文件
我们只需要在.htaccess文件中,加入如下代码即可完成禁止访问wp-login.php及xmlrpc.php文件,并返回403拒绝访问代码:
# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# protect wp-login
<Files wp-login.php>
Order Deny,Allow
Deny from all
</Files>
修改完,无需重启,立即生效。
白名单的设置
当然,如果你自己也在用wp-login.php登录自己网站的后台,很显然,这么做是不合理的。那么你可以加入登录白名单的ip即可,代码如下:
# protect xmlrpc
<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>
# protect wp-login
<Files wp-login.php>
Order Deny,Allow
Allow from 192.16.1.1(这里改成自己的ip即可)
Deny from all
</Files>
如果你的网站有前台登录的方法,那么直接禁止访问wp-login.php是没有任何问题的,比如本站的登录跟注册,都与wp-login.php文件无关,所以直接禁用就可以了。
也就是说,如果你平时登录网站并不是通过WP的默认登录页面去登录后台,直接禁止访问wp-login.php,是没有任何问题的。而且也不影响你用户平时登录你的网站。当然,最好加个验证码,更加安全。
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/741.html
评论列表(11条)
大佬 这个代码块样式是二次开发过了吗,有教程吗
@2322:https://iymark.com/questions/328.html
我用的enlighter插件,上面是针对该插件,justnews主题的魔改代码,用于适配插件
@古哥:安装了插件,添加css样式。然后在编辑文章的时候插入代码块就能实现了吗?
@2322:这个插件会提供一个代码块的,你插入代码用它提供的代码块就可以了。
enlighter这个代码块
古哥,现在这个失效了吗 我是宝塔,用的是你记录的第一段代码,保存以后退出网站登录,访问域名/wp-admin 或者是域名/wp-login.php 还是可以访问。
@剑心:拿可能你的apache不支持这个功能。
大概需要在apache配置文件里添加如下内容
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order Deny,Allow
Require all granted
DirectoryIndex index.php index.html index.htm
@古哥:哦哦,那我搞错了我是Nginx,Nginx有办法吗
@剑心:肯定有啊
比如这篇文章:https://www.cnblogs.com/irisrain/p/4319027.html
@古哥:好的,我去看看 感谢
@剑心:看看以上代码位置处有没有如下代码:
Options FollowSymLinks
@剑心:conf文件