首先感谢琥珀酱的帮助~~~> <虽然这篇文章并没有用到《[野生技术]已审核的评论不显示验证码(beta)》和《日常Ⅱ(3)》的方法QUQ……【喂
自从使用了验证码后,垃圾评论确实少了许多。但问题也就来了,例如在手机上使用WPtouch插件就无法正常发表评论。于是便在其中增加了新的参数:
- // pixiv-custom/functions.php
- …………
- function pixiv_cmn_checkbox() {
- $label = __('当有人回复时向我发送电子邮件','pixiv');
- echo '<div id="comment_notify_checkbox"><input name="is_pc" value="true" hidden/><label for="are_you_ad_robot">验证码:ccloli</label><input type="text" name="are_you_ad_robot" id="are_you_ad_robot" style="width:50px;background:rgba(255,255,255,.5);display:inline;padding-right:10px"><input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked"/><label for="comment_mail_notify">'.$label.'</label></div>';
- }
- …………
- // wp-comments-post.php
- …………
- if ( !$user->ID && trim($_POST['is_pc'])=='true' ) {
- $aaarb = trim($_POST['are_you_ad_robot']);
- if ( $aaarb != 'ccloli' )
- wp_die( __('<strong>错误</strong>: 请输入正确的验证码.') );
- }
- if ( '' == $comment_content )
- …………
问题解决了,而且期间也没有垃圾评论。但是每次都输验证码也会很麻烦嘛,所以尝试直接在验证码框上加value="ccloli"。问题在于第二天垃圾评论就回来了,不得已只能改回来。
难道只能这样吗?所以通过目前的信息思考一下机器人发表垃圾评论的步骤。个人猜测应该是调用浏览器获取页面内容,随机生成用户名、邮箱、User Agent等并生成广告评论。之所以认为是“调用浏览器获取页面内容”而不是直接用post方法提交给wp-comments-post.php,是因为后台页面都存在User Agent且都是电脑端,在添加验证码后也没有垃圾评论(如果直接用post方法提交给wp-comments-post.php可以绕过验证码……因为“&& trim($_POST['is_pc'])=='true' ”……OTL)。
看来验证码是必要的,那么能不能自动填写验证码呢?思考了一下,做到了这个效果:
- // pixiv-custom/functions.php
- …………
- function pixiv_cmn_checkbox() {
- $label = __('当有人回复时向我发送电子邮件','pixiv');
- echo '<div id="comment_notify_checkbox"><input name="is_pc" value="true" hidden/><label for="are_you_ad_robot" style="display:none">验证码:ccloli</label><input type="text" name="are_you_ad_robot" id="are_you_ad_robot" style="width:50px;background:rgba(255,255,255,.5);display:/*inline*/none;padding-right:10px"><script>document.getElementById("submit").onclick=function(event){document.getElementById("are_you_ad_robot").value="ccloli"}</script><input type="checkbox" name="comment_mail_notify" id="comment_mail_notify" value="comment_mail_notify" checked="checked"/><label for="comment_mail_notify">'.$label.'</label></div>';
- }
- …………
这样,当用户点击【提交评论】时会自动添加验证码。事实证明效果不错,垃圾评论也没有出现……看来robot估计是用submit()什么的提交的……/ \以上……
我来试试验证码
-_- 难怪我无法在同一页面连续回复……验证码框都被隐藏了……麻烦补上
现在应该没有问题了吧……/ \
应该是在你修改之后发生的事,就是回复新年那篇的时候,现在再试试……@_@
嗯,麻烦在点击发表后过一段时间再次自动填写验证码。= =
第二次生成回复表单的时候没有自动填写验证码的脚本~
我比較好奇你的系統和瀏覽器居然還能訪問本站……
@_@ 我是不存在君
其实直接改掉ua就ok啦
IE1.0的图标竟然这么好看……不科学……O_O
0_0……
= = 难道你是自动回复君…… 另外怎么现在设置简单样式后,刷新了还是透明样式 -_-?
改回来了,前几天玩玩强制背景什么的/ \
这主题坑爆了/ \自动去除JavaScript标签
另外现在站点不稳定,有时会被重置或者找不到dns服务器
修改userAgent而已
其实介个也不错,不过人肉或用脚本的spam貌似可以突破
其实我那边的第二个方法你也可以加上的说,免得后台留言ip都是127.x.x.x,赶脚不太爽
反正现在没事了/ \先不管这么高深的东西
其实挺简单的说,就是绕过代理取得首级ip
貌似可以了/ \不过刚刚又收到一条Traceback垃圾评论……还真是/ \
垃圾评论啊,我那多年不见一条.木哈哈哈哈