之前博客一直收到很多来自国外IP的垃圾英文广告评论,每天都要有十几二十条,
就是用 Akismet 反垃圾评论 也挡不住
最后分析访问日志发现是通过了 wp-comments-post.php 这个post提交的垃圾评论,好在lolimeow主题使用了ajax无刷新
方式发布的评论,评论不是调用这个WordPress默认的,所以索性直接把这个文件屏蔽了访问,在nginx下设置规则,访问
返回403禁止访问,从此WordPress再也没有垃圾评论了,连Akismet 反垃圾评论插件都不需要装了
PS:此段设置针对lolimeow主题是有效
,如果别的主题评论是调用默认的文档,那会导致用户也不能正常发评论
Nginx 规则设置
如果你用的是宝塔面板,直接在网站的伪静态内添加下面这段规则即可
location ^~ /wp-comments-post.php{ deny all; }
额外的建议规则一起配置
同时建议把xmlrpc.php也禁止掉,正常我们不需要post发布文章之类的,都是直接博客后台编辑发布文章,所以这个接口也可以直接
403禁止访问掉
location ^~ /xmlrpc.php{ deny all; }
还有一个json接口会暴露用户信息,一般不需要调用到,也建议一起屏蔽访问,防止信息泄露
location ^~ /wp-json/wp/v2/users/ { deny all; }
试一试
感谢分享,谢谢站长!!@天天下载
撒阿萨的接口
评论一下
apache要写在LocationMatch 配置中,
Order deny,allow
Deny from all
只测试一次
这就去配置
测试下高大上的ajax无刷新回复是什么样的
前2个一直在用,试了最后一个,确实暴露登录名,立即更新nginx配置用上了。