为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用验证码的情况下阻止垃圾评论

在不使用验证码的情况下阻止垃圾评论

PHP
开心每一天1111 2019-08-26 17:34:11
在不使用验证码的情况下阻止垃圾评论在我的评论中阻止垃圾邮件的一些非验证码方法是什么?
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

1)将与会话相关的信息添加到表单中示例:

<input type="hidden" name="sh" value="<?php echo dechex(crc32(session_id())); ?>" />

然后在回发时,检查会话是否有效。

2)仅限Javascript。在提交时使用Javascript注入。例:

<input type="hidden" id="txtKey" name="key" value="" /><input type="submit" value="Go" onclick="document.getElementById('txtKey').value = '<?php echo dechex(crc32(session_id())) ?>';" />

3)每个IP,用户或会话的时间限制。这很简单。

4)随机化字段名称:

<?php
   $fieldkey = dechex(crc32(mt_rand().dechex(crc32(time()))));
   $_SESSION['fieldkey'] = $fieldkey;?><input type="text" name="name<?php echo $fieldkey; ?>" value="" />
<input type="text" name="address<?php echo $fieldkey; ?>" value="" />

然后你可以在服务器端检查它。


查看完整回答
反对 回复 2019-08-26
?
达令说

TA贡献1821条经验 获得超6个赞

这是在不使用验证码的情况下阻止垃圾邮件机器人或暴力攻击的简单技巧。

把它放在你的表格中:

<input type="hidden" name="hash" value="<?php echo md5($secret_key.time()).','.time(); ?>" />

把它放在你的PHP代码中

$human_typing_time = 5;/** page load (1s) + submit (1s) + typing time (3s) */$vars = explode(',', $_POST['hash']);if(md5($secret_key.$vars[1]) != $vars[0] || time() < $var[1] + $human_typing_time){
    //bot?
    exit();}

根据表格的重量,您可以增加或减少$ human_typing_time。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 372 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信