[英]Secure login and security page check best practices with PHP
想获得一些人对以下方面的看法:
要么
因此,用户ID和访问级别可以从每个安全页面上的数据库中获取,也可以从加密的会话/ cookie值对中获取。
结论
这就是我选择做的事情:
登录
用于页面验证:
我将选择两个级别的页面用户访问验证:
低优先级页面检查:
高优先级页面检查:
额外:
我将添加一个IP记录功能,它将跟踪数据库中的IP以进行登录尝试,如果该登录失败了该IP超过10次,则IP将被禁止。
当然不是来自cookies。 会话cookie应该是gobbledygook完全没有意义的伪随机blob。 这个gobbledygook是存储在服务器端的会话的id。 此会话数据可以存储在数据库或文件系统中(默认情况下,它与PHP会话一起存储)。 您使用存储的凭据对用户进行一次身份验证,然后为他打开会话并存储其用户ID以及此会话中您需要的任何其他内容。 然后,通过其无意义的会话cookie和属于它的数据来识别和验证用户。 不多也不少。
有一个论点是偶尔检查会话中的数据是否仍与数据库同步。 比如说,用户具有某些“访问级别”,并在用户进行身份验证时将其存储在会话中。 现在,您可以更改数据库中用户的访问级别; 会话仍然会有该数据的旧副本,用户仍然可以访问他可能不再允许的级别。 您可以根据规范数据库存储验证此数据的频率取决于您。
您可以将“敏感”数据放在cookie中,它被许多系统使用,例如CodeIngnitter。
要最大限度地降低风险,请确保正确实施加密。
如果您的加密是正常的,那么会话cookie加上db查找和存储在cookie中的值之间没有太大区别。
在这两种情况下:
如果可能,请使用HTTPS。
仅使用HTTP_ONLY cookie,因此会话cookie不会显示在document.cookie中
删除任何可能显示cookie信息的“反射”页面,一个很好的例子就是phpinfo()页面。
确保将IP地址的某些部分添加到组合中,也可以添加用户代理。
如果有人设法抓取cookie或会话cookie,它就不能冒充用户,除非它知道用户代理并且可以从该IP或IP类发送HTTP请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.