我有一个 PHP 网站。后端使用MySQL数据库。
让我把这个场景说得简短明了。
网站上有一张用户注册表。该表单使用 AJAX 提交。它有一个用于输入用户电子邮件 ID 的字段。该字段的验证是电子邮件中的域名必须是“.edu”,如果输入具有其他域的电子邮件,则会引发错误。例如,anilpatil@msstate.edu 是有效的电子邮件 ID,而 anilpatil@yahoo.com 是无效的电子邮件 ID。
检查代码后,我发现此验证是在 PHP 中完成的,并且工作正常,显示了正确的错误消息,并且表单未提交。
即使我的数据库包含许多电子邮件 ID 属于 .com 域或其他域的用户。这些用户也可以登录系统。
我还尝试禁用浏览器的 JavaScript 并输入无效的电子邮件 ID,然后它也工作正常。用户无法注册。
我不明白这些用户是如何注册的?我无法检测到此问题的根本原因。有人可以在这方面帮助我,告诉我这个问题的根本原因是什么吗?
谢谢。
附注:- 不可能将全部代码放在这里。因为它太大并且来自太多文件。它是框架的一部分。但考虑到验证代码工作得绝对正常。我的主要目的是检测此安全漏洞的根本原因。
最佳答案
在不发布任何代码的情况下,我最好的猜测是人们直接使用您的 ajax 文件进行注册,并且您的 ajax 文件不包含验证。
如果您想让我验证它,请发布您的网站,我将尝试直接使用您的ajax文件进行注册
关于php - 尽管验证码有效,用户应该如何通过输入无效的电子邮件 ID 在网站上注册?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881626/