【发布时间】:2014-10-09 13:29:16
【问题描述】:
我目前正在为一个在网站上存储个人信息和信用卡信息的客户开发一个新网站。因此,安全性对我来说是一个大问题。这是我建立的第一个包含敏感信息的网站,所以我对整个主题不是很熟悉。
网站使用会话管理用户。但是,我发现很难保证会话安全。我想实现一个用户代理检查,每次加载页面时检查浏览器。这样,当我将会话 ID 复制到“攻击者”浏览器上手动创建的 cookie 中时,服务器将检测到用户代理更改(从 Chrome 到 Firefox)并拒绝会话。
我的问题是,如果我确实在每次加载页面时都执行此检查,我是否会冒退出合法用户的风险?真正的用户是否有任何理由会在页面之间更改他们的用户代理?如果是这样,这种情况发生的可能性有多大?很可能我应该完全放弃这种方法,还是可以接受的风险?
编辑:cookie 设置为在浏览器关闭后立即过期。此外,登录时设置的用户代理存储在会话中,并在附加盐后进行哈希处理。
【问题讨论】:
-
使用 SSL。如果您不使用 SSL,则没有真正的安全性。如果人们可以劫持您的会话 ID,则用户代理不是远程可接受的检测方法。总比没有好。
-
“真正的用户有什么理由会在页面之间改变他们的用户代理吗?”不是真的,不。但这不是您应该关注的真正用户。这是试图闯入的人。任何人都可以更改浏览器的用户代理,所以 IMO,这是一种浪费的检查。
-
如果您不是网络安全专家并且您正在处理信用卡详细信息,则不应处理信用卡详细信息。您为什么不将此推送给 World Pay 或 Paypal 等第三方?
-
“此外,登录时设置的用户代理存储在会话中,并在添加盐后进行哈希处理。”表示您不知道散列或加盐的用途。您真的必须不接受信用卡详细信息。安全性是最困难的问题之一,您绝对没有机会在第一次尝试时就做好。如果您存储信用卡,失败的成本非常高,无法冒险。
标签: php security session user-agent