PHP - 验证码替换

标签 php security forms captcha

我需要您对这段用于实现反垃圾邮件解决方案的代码的意见:

  • 生成页面/表单时,会创建一个随机字符串,例如。像 $string = md5($_SERVER['REMOTE_ADDR'])
  • 这个字符串被插入到数据库中,并设置为在假设 2 小时后过期,这样我们就不会填满数据库
  • 在页面加载时,表单有一个没有值的隐藏输入字段,我们将其命名为 spam_check
  • 页面加载后 10、15 或 20 秒后,自动触发 AJAX 请求,尝试从数据库中检索 $string 并填写 spam_check 输入值
  • 提交表单时,如果不匹配,我们将在来自数据库的 $string$_POST['spam_check'] 之间执行简单检查该邮件是垃圾邮件...

这是个好主意吗?它有多安全? 明显的优势是它不需要访问者执行任何操作,例如阅读验证码等。

最佳答案

由于 $string 不是很随机,并且 AJAX 请求对于试图绕过您的保护的人来说是可见的,因此很容易构建一个自动检索 $string,然后将大量垃圾邮件发送到该表单上。

关于PHP - 验证码替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470274/

相关文章:

PHP 和 Javascript 文档生成器

php - 数据库中的代码未返回

php - yii2:如何计算groupby查询的总和

Firebase/数据库 - 版本 2 安全规则?

java - CRC Craking 知晓结果

django - 如何修复我的 Django 网站中的 "bool object is not callabe"错误

php - Mysql 查询返回空数组?

security - 如何在 CSV 文件上安全地使用 fopen?

jquery - 使用 jQuery 在几秒钟后更改输入按钮文本

python - "no control matching name"在 python 中的 Mechanize