【发布时间】:2014-01-21 14:07:42
【问题描述】:
我已经准备好几篇关于会话安全性的文章,但我还没有看到任何具体涉及我的特定代码的文章。我对我的网站的安全性非常怀疑,因为它包含敏感信息。
我的每个页面都是从这行代码开始的:
session_start();
if(!isset($_SESSION["username"]))
{
header("Location: login.html");
}
这足够安全吗?我是 PHP 新手,但我读的越多,我就越偏执。有人可以简单地设置一个名为 username 的会话,让它看起来像是我的网站设置的以获取访问权限吗?
【问题讨论】:
-
这个问题似乎离题了,因为它是关于安全的,更适合Information Security 或Code Review
-
仅仅因为会话数据保存在服务器端对安全性没有多大意义。现在它已被简化为与您的服务器一样安全。如果你的对手是美国国家安全局,你还不如放弃,让一切都敞开心扉。
-
@MarcB 说“它被简化为与您的服务器一样安全”基本上总是正确的。您可以使用 SSL、CSRF 保护、令人惊叹的 PRNG 做任何您想做的事情,但是如果您使用“密码”的根密码向世界开放 SSH,您仍然会被拥有,所以我看不出您的评论有什么价值带来。假设生成并存储在 cookie 中的 php 会话密钥是随机的并通过安全连接发送,检查服务器上会话中的值将是一个可信的信息来源 - OP 不会变得更好。