联系表格提交真实和虚假的captcha答案


contact form submits on both true and false captcha answers

我快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' /> &nbsp;
<?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令牌的代码)。本质上你需要:

  1. 加载页面时生成基于会话的令牌
  2. 将该令牌包含在隐藏的表单字段中
  3. 检查令牌是否存在并且与表单提交时的会话令牌匹配

你在80岁的时候编程真是太棒了!:)

试试吧
防止机器人垃圾邮件:什么是6+6?(编号)

<input type='text' name='quiz' id='quiz' size='8' /> &nbsp;
<?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>