会话存储可以安全吗?

App*_*der 21 javascript xss session html5 storage

我想使用会话存储只查询数据库中的用户数据一次,然后只需使用JS来检索它,所以我正在考虑使用会话存储.接下来我的问题是,那安全吗?

请注意:

1. JS无法插入带有表单的页面(表单只接受字母数字值),因此它只能来自URL

1.1查询字符串如www.website.com/?q=blablabla未在php中使用(php不从url检索任何数据)

1.2使用javascript:script调用url中的js并不是一个大问题,因为用户只能获取自己的数据,更不用说他已经可以访问它了 - 这就是用户数据的重点

1.3是否有第三种方式通过包含JS的链接将用户重定向到站点,而不能访问会话存储?即:像某样的东西 - www.website.com/script ...

我的猜测是,只有像1.3这样的东西才会成为威胁(除此之外,我错过了什么吗?)但这是否存在?如果有,有办法防止它吗?

谢谢你的时间和回复.

Pay*_*tey 11

您基本上依赖于会话存储安全性的两件事:

  1. 浏览器仅限制访问此域中页面上的 javascript
  2. 在页面上运行的javascript是安全的

现在关于排名第一,你不能做很多事情,因为这是供应商的问题,并没有特别针对任何人,但是,他们中的大多数人通常都非常擅长这种事情.

因此,您可以相当确定任何其他选项卡,域,浏览器或进程上的其他代码都无法查看您的存储对象.

但是,第2号更难,您必须自己评估您的页面对脚本攻击的安全性,有大量关于最佳实践的文档,但您可以持续数天.您确实需要判断数据的敏感程度,以及确保数据安全的功能和可能的功能损失.

如果它真的是敏感数据,我会质疑为什么你冒着存储客户端的风险,并且只能通过HTTPS访问.但是,对于大多数脚本攻击来说,您的站点应该是安全的,因为如果第三方javascript正在运行会话cookie,那么您的服务器安全性也会受到损害.


chi*_*org 4

由于会话存储只能由页面上运行的 JavaScript 读取,因此我认为您的问题可以归结为“如何将 JavaScript 执行/插入到我的页面中?” 有两种攻击方法:XSS,意思是通过将数据发布到您的网站来将 JavaScript 注入您的页面的某种方式。如果未过滤此数据,它可能会将脚本标记或 JavaScript 事件插入到您的 HTML 中。有很多方法可以做到这一点并防止它,所以我不能更具体。

较小的威胁是欺骗网站通过特制的链接调用您页面上的特定操作来显示或更改信息。这种技术称为CSRF。示例:有人制作了一个指向“更改电子邮件”页面的链接,并欺骗登录的用户单击此链接,这会更改会话存储中的电子邮件信息。

如果您的应用程序是公开的,任何人都可以在其浏览器中打开会话存储并查找密钥的名称。因此,除非它们是随机的,否则模糊性在这里无法提供保护。