gpt4 book ai didi

php - 蜜 jar 反垃圾邮件技术。如何为每个站点加载的隐藏字段随机生成一个名称?

转载 作者:行者123 更新时间:2023-11-29 11:41:00 27 4
gpt4 key购买 nike

首先,让我解释一下反垃圾邮件的概念:两个月前,我在我父亲的公司网站上遇到了一个问题。它有一个联系表格,但俄罗斯机器人开始经常向服务器的邮箱发送垃圾邮件(每天三到五封邮件)。我改进了验证码(更复杂的字体、不同的背景等),但这似乎不是一个永久的解决方案。这些机器人比我预期的要聪明一些。我开始阅读不同的反垃圾邮件概念,发现了“honeypot method”。它工作了一段时间,但机器人在实现后的第一周就知道了该字段的名称。现在,每天早上我都必须打开 PHP 文件并为该隐藏字段想出一个新名称。

好的。对于这个问题。我需要为该字段生成随机名称,但我需要一个如何做到这一点的概念。现在我正在使用执行以下操作的 PHP 脚本:

1:删除 MySQL 数据库中超过 10 分钟的所有记录 session 。

2:检查是否为当前用户设置了 session 。

3:如果 session 设置时间不到 10 分钟,它只会更新它,将 time() 的当前输出写入数据库。

4:如果没有 - 启动一个新 session 并在 MySQL 中记录它的 session_id()

我的 MySQL 表中有 4 列: id(PRIMARY KEY, 记录的 ID); sess_id(我放置 session_id() 的输出并使用它来管理用户的 session ); session_started(包含time()的输出); tf_name(包含随机生成的字符串,稍后应将其用作蜜 jar 字段的名称属性)。

一般来说,这个概念是有效的。但它限制用户在页面加载后 10 分钟内发送消息。我需要消除时间因素。

在我看来,解决方案之一是在网站加载时生成一个新的 PHP session ,并在用户离开网站时使用 session_destroy()(关闭浏览器,单击外部链接等)但这似乎很难实现,因为我不想使用 JavaScript(因此,不能使用 onunload 事件),而且无论是否使用 onunload 事件都会触发您单击外部链接或内部链接(或者您提交联系表单,这将为蜜 jar 字段生成新名称)。

最佳答案

查看 csrf 或跨站点请求伪造的概念。我认为,在我看来,这将是一个比自行解决方案更加务实的解决方案。

引用号:https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)

经验:https://github.com/smiegles/PHP-csrf-security-classes

我发现您已经在使用验证码,但机器人能够绕过它;使用更好的验证码:)。我个人很幸运的两个验证码是那些需要简单数学答案的验证码 (3+4)I am not a robot复选框。

引用号:https://www.google.com/recaptcha/intro/index.html

引用号:https://github.com/nettraction/Math_Captcha

关于php - 蜜 jar 反垃圾邮件技术。如何为每个站点加载的隐藏字段随机生成一个名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35776409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com