2013-02-05 23 views
0

因此,我刚刚在我正在开发的开发项目上创建一个登录脚本时发现了一个BIG“No-No”。

在设置cookie,user_ID和加密密码时,我注意到在Google Chrome(或Mozilla Firefox的简单扩展)上,我可以将用户ID cookie编辑为另一个用户的用户ID,并访问该网站就像我是他们。

有没有人有任何指示我需要采取什么路线,所以这不会发生?请让我知道是否需要更多信息。

+3

您不应该在Cookie中存储敏感信息。您应该将用户的数据存储在[sessions](http://php.net/manual/en/book.session.php)中。 – Supericy

+0

如果包含一段用户信息的cookie未被存储,内容仍然是动态的(每个用户)? –

+0

备忘单:https://www.owasp.org/index.php/Session_Management_Cheat_Sheet – ficuscr

回答

0

如果您需要保持人员登录时间超过浏览器会话时间,则应将用户数据等内容存储在数据库中,然后创建一个与数据库行ID匹配的cookie。只是FYI不使用自动递增ID

1

如果您不打算在服务器上验证它,为什么要存储加密的密码?如果用户发送用户标识但密码不匹配,则不应允许他们访问该网站。

在任何情况下,您都应该使用$_SESSION变量来保存登录信息等信息。这样用户只能看到会话ID。虽然理论上可以猜测其他人的会话ID(或窃取它 - 会话劫持),但您可以添加其他图层,例如要求用户代理和IP地址保持不变 - 这取决于需要多少安全性。

+0

我明白。因此,最佳做法是在收集动态内容的用户信息时仅使用SESSION Cookie。 –

+0

我的脚本确实记录了不正确的密码,我只是不确定如何为“仅限会员”网站存储他们的凭据。 –