在不使用验证码的情况下阻止垃圾评论在我的评论中阻止垃圾邮件的一些非验证码方法是什么?
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="" />
然后你可以在服务器端检查它。
达令说
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。
- 3 回答
- 0 关注
- 372 浏览
添加回答
举报
0/150
提交
取消