PHP变量身份验证

PHP变量身份验证,php,security,Php,Security,用php编写文件进行身份验证是个坏主意吗 例如: 用户提交登录表单。如果凭据无效,PHP将写入一个新文件,文件名作为尝试的用户名,内容将包含一个包含尝试次数的变量。然后,该文件将包含在下一次登录尝试中,如果登录尝试次数=2或其他,则显示reCaptcha 这种技术有什么明显的缺陷吗?我看到大多数人建议使用数据库来存储登录尝试等,我这样做没有问题,但我只是好奇 文件只是数据库的另一种形式。如果您仔细地实现此解决方案,那么通过数据库或文件实现此解决方案之间并没有真正的区别 问题在于通过文件管理会话和

用php编写文件进行身份验证是个坏主意吗

例如:

用户提交登录表单。如果凭据无效,PHP将写入一个新文件,文件名作为尝试的用户名,内容将包含一个包含尝试次数的变量。然后,该文件将包含在下一次登录尝试中,如果登录尝试次数=2或其他,则显示reCaptcha


这种技术有什么明显的缺陷吗?我看到大多数人建议使用数据库来存储登录尝试等,我这样做没有问题,但我只是好奇

文件只是数据库的另一种形式。如果您仔细地实现此解决方案,那么通过数据库或文件实现此解决方案之间并没有真正的区别


问题在于通过文件管理会话和编写所有代码来正确执行这些操作的额外开销。

最后,除了内存中的数据库外,数据库也对文件进行操作。
自己处理文件不是很有效。数据库解决了您自己在这里提到的文件写入/读取时所面临的一些复杂问题

是否不可能使用数据库?啊,没有读最后一行;)您无法真正节省地跟踪登录尝试,所以最好的方法是在第一次呼叫时请求一次验证码。如果成功,保存somthing=TRUE到您的会话并继续,否则再次显示验证码1或2次-之后显示nothing;)谢谢,我没这么想。但那不是很容易受到暴力攻击吗?你是什么意思?您对存储登录尝试计数器有疑问。其背后的逻辑是,写入文件比存储会话或使用数据库更安全。抱歉没有详细说明