我快80岁了,可能年纪太大了,不能再做这件事了。尽管我在20多年前就从主框架编程的生活中退休了,但我对许多现代编程语言几乎一无所知。我的表单有效,但似乎无法添加一个简单的captcha来阻止提交错误答案或最近垃圾邮件机器人的攻击。(不能使用图像captchas,因为年长的兄弟永远不会协商它们:)出于安全原因,也希望避免使用javascript。
问题:形式ECHOS错误答案可以,但发送所有答案12或否(显示CAPTCHA部分)
<BR>Prevent Robot Spam: What is 6 + 6? (Number)
<input type='text' name='quiz' id='quiz' size='8' />
<?php
$quiz = $_POST['quiz'];
if ($quiz == '' || $quiz == 12) {
// true answer, form sent
} else {
echo 'false answer, please back < browser and try again';
exit;
}
?>
<input type='submit' name='Sent From Universe Lodge Web-Site' id='submit' value='SEND YOUR MESSAGE' /></BR>
有什么建议吗?
如果你不是随机生成数学题,那么你的表格仍然很容易被垃圾邮件垃圾邮件所破坏。本页提供了关于防止CSRF的分步说明(包括自动更改表格以包含nonce令牌的代码)。本质上你需要:
- 加载页面时生成基于会话的令牌
- 将该令牌包含在隐藏的表单字段中
- 检查令牌是否存在并且与表单提交时的会话令牌匹配
你在80岁的时候编程真是太棒了!:)
试试吧
防止机器人垃圾邮件:什么是6+6?(编号)
<input type='text' name='quiz' id='quiz' size='8' />
<?php
if(isset($_POST['quiz'])){
$quiz = $_POST['quiz'];
if ($quiz == 12) {
// true answer, form sent
} else {
echo 'false answer, please back < browser and try again';
exit;
}
}
?>
<input type='submit' name='Sent From Universe Lodge Web-Site' id='submit' value='SEND YOUR MESSAGE' /></BR>