我想使用会话存储只查询数据库中的用户数据一次,然后只使用JS来检索它,所以我正在考虑使用会话存储。接下来我的问题是,那安全吗?
请注意:
1。 JS无法插入带有表单的页面(表单只接受字母数字值),因此它只能来自URL
1.1 查询字符串如www.website.com/?q=blablabla未在php中使用(php不会从网址中检索任何数据)
1.2 使用javascript:script调用url中的js并不是一个大问题,因为用户只能获取自己的数据,更不用说他已经可以访问它了 - 这就是用户数据点
1.3 用户是否有第三种方式通过包含JS的链接重定向到网站,而该链接无法访问会话存储?即:类似于 - www.website.com/script ...
我的猜测是,只有像1.3这样的东西会成为一种威胁(除此之外,我错过了什么吗?)但这是否存在?如果有,有办法防止它吗?
感谢您的时间和回复。
答案 0 :(得分:11)
您基本上依赖于会话存储安全性的两件事:
现在关于排名第一,你可以做的事情不多,因为那是供应商的问题,并没有特别指向任何人,但大多数他们通常都很擅长这种事情。
因此,您可以相当确定任何其他选项卡,域,浏览器或进程上的其他代码都无法看到您的存储对象。
然而,第2号更难,您必须自己评估您的页面对脚本攻击的安全性,有大量关于最佳实践的文档,但您可以持续数天。您确实需要判断数据的敏感程度与确保数据的安全性和可能的功能损失之间的差异。
如果它真的是敏感数据,我会质疑为什么你冒着存储客户端的风险,只能通过HTTPS访问。但是,对于大多数脚本攻击来说,您的站点应该是安全的,因为如果第三方javascript正在运行会话cookie,那么您的服务器安全性也会受到损害。
答案 1 :(得分:3)
由于会话存储只能通过页面上运行的JavaScript读取,我认为您的问题归结为“如何将JavaScript放入/插入我的页面?”有两种攻击方法:XSS,意味着通过向您的站点发布数据将JavaScript注入页面的某种方式。如果未过滤此数据,则可能会将脚本标记或JavaScript事件插入HTML。有很多方法可以做到这一点,并防止它,所以我不能更具体。
较小的威胁是欺骗网站通过在您的网页上调用特定操作的特制链接来显示或更改信息。这种技术称为CSRF。示例:有人制作了“更改电子邮件”页面的链接,并欺骗登录用户点击此链接,这会更改会话存储中的电子邮件信息。
如果您的应用程序是公开的,任何人都可以在浏览器中打开会话存储并查找密钥的名称。因此,除非他们是随机的,否则在这里不提供任何保护。