Sun*_*One 3 php security captcha brute-force
我一直在收集有关如何防止日志页面上的暴力攻击或多个帐户创建的破坏的信息.
我得出结论(感谢Stackoverflow的人),最好的方法是使用验证码.
但是不方便阅读验证码或重音字符可能会阻止用户使用网站.
所以,我发现了一个易于使用的小脚本,我适应了我的网站.这是一个简单的数学验证码,建议总结从0到10的 2个数字.它显示的单词"一","两个","三个" ......而不是数字.
我的问题是:
1)这个小验证码本身是否提供足够的安全性?
2)我整合它的方式是否安全?(以任何方式绕过它?)
为了避免粘贴800行代码我做了总结,我希望很清楚.
验证码脚本:
$n1 = mt_rand(0,10);
$n2 = mt_rand(0,10);
$fig = array('zero','one','two','three','four','five','six','seven','eight','nine','ten');
$result = $n1 + $n2;
$sentence = $fig[$n1] .' plus '.$fig[$n2];
$_SESSION['captcha'] = $result;
$captcha_label = "<label for='captcha' >How much does ".$sentence."make?</label>";
echo $captcha_label."</label><input type='text' name='captcha' value=''/><br />";
echo "<input type='submit' name='create' value='create account'>";
Run Code Online (Sandbox Code Playgroud)
页数:
所有'创建帐户'输入字段+验证码
=>测试
test.php的:
if($_POST['captcha'] != $_SESSION['captcha']){
}
$_SESSION['captcha_control'] = "false";
然后所有'创建帐户' $ _POSTS都经过注射测试
如果它们中的任何一个或验证码返回"false",则脚本会偏转到=> problem.php
回显初始形式,突出显示所有"错误字段",并显示新的验证码,是正确还是错误.
validation =>返回test.php
非常感谢.
像大多数简单的CAPTCHA一样,它会运行得相当好,直到你的网站足够重要,垃圾邮件发送者花几分钟来弄清楚如何打破它.此时,您将被垃圾邮件淹没.
如果你打算使用自己的CAPTCHA,那就太过分了 - 它甚至不需要是随机的.简单地要求用户输入一个恒定的单词(例如,"在此框中键入'橙色'")将停止绝大多数简单的spambots.
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |