安全性 - 会话(默认使用 - Cookie)与本地存储
Security - Sessions ( default use - Cookie ) vs. local storage
我不关心浏览器兼容性。
我想知道如果我将我的状态从 PHP 控制(服务器端)会话移动到 JavaScript 控制(客户端 - 端)HTML 5 本地存储,我会获得还是失去安全性。
我认为我会获得安全性,因为现在而不是将用户标识符驻留在 cookie 中,通常是文件或易于访问的 sql 数据库......它不在某种内部浏览器存储中。+ BC 这是一项较新的技术,我希望在其中设计出更多的安全性。
我是通过从 PHP 会话迁移到 JavaScript 本地存储来获得还是失去安全性。(这适用于用户 id、page_id等,重新加载后保持的当前状态,如果需要,可以更长时间)。
我有一个 JavaScript 解决方案,我想用它替换我的 PHP 会话。 这就是我问的原因。 我不在乎浏览器兼容性。
这是一个关于本地存储的信息网站。 但没有提到安全性。
两种类型的本地存储(localStorage和Cookie)都使用某种标识符,该标识符显然存储在客户端上。
两者都使用哈希机制来保护它不会更改为其他用户。
本地存储比 cookie 更安全(见这里)。
显然,如果您想将用户标识符从cookie移动到localStorage,则必须编写会话协议。
两者都可以被窃取以假装是另一个用户。 虽然不太可能使用本地存储。
为了使强大,您需要一种有助于解决上述问题的指纹识别技术。
我有一个 JavaScript 解决方案,我想用它替换我的 PHP 会话。
不。不要这样做。会话存储在服务器端。发送到浏览器的 Cookie 通常是该记录的标识符。会话存储特定于用户的数据。存储在客户端的几乎所有内容都可以由用户轻松修改。因此,如果用户修改会话以指向另一个用户,则安全性将不再成立。
本地存储不是用来存储会话的。坚持使用 PHP 会话,或在服务器端实现的任何其他会话机制。
更新
但是也存在同样的安全漏洞...用户可以以一个人的身份登录 人。。。摆弄会议session_id并成为某人 还。。。摆弄着session_id...等同于摆弄你是谁 似乎是服务器?...这与摆弄相同 local_storage中的加密user_id。
不。假设我弄清楚您正在加密的算法。我知道另一个用户说用户B。我用这种算法加密了他的用户名。如果我以某种方式用该加密字符串覆盖我的本地存储,我现在就是他。这实际上是不可能的。可以将其视为有 100 个用户,128 字节字符串是标识符。您确定能够摆弄它并将其修改为会话表中存在的另一条记录吗?
本地存储最适合您希望以(更永久)的方式(而不是常规浏览器缓存)在客户端上缓存的数据。它"更安全"的唯一方法是,如果您希望允许用户处理从未发送到服务器的数据。
如果您担心会话劫持,首选解决方案是使用 https/ssl 并加密您和客户端之间的所有流量。维基百科上有关于问题和解决方案的一般概述(不过,我们需要更多信息来为您提供比这更具体的信息)。
您不会获得或失去安全性,因为在大多数浏览器中,站点设置的所有数据都存储在同一个文件夹中
- 用于存储、检索和附加到url的javascript cookie
- 为什么大型网站不;I don’我更喜欢本地存储而不是cookie
- 将会话登录页存储在cookie中以进行表单解析(通过隐藏字段)
- 使用 Cookie 存储数据
- 如何将jQuery克隆的文本输入保存到cookie或html5存储中
- Javascript Security:将敏感数据存储在比cookie更安全的自调用函数中
- 为样式表切换器存储js cookie
- 使用纯js在cookie中存储多个值
- 如何在Javascript的跨域操作中存储cookie
- 通过javascript存储cookie
- 使用滑动存储cookie以删除jquery mobile
- 在用户浏览表单时存储cookie
- 在服务器上存储 Cookie 数据
- 如何在 socket.io 中存储cookie(socket.handshake.headers.cookie)
- 函数获胜't存储cookie
- 当你在iOS的主屏幕上添加一个web应用程序时,你就不能再存储cookie了
- 使用ETag在浏览器中存储cookie信息
- Phonegap/Javascript应用程序:我如何存储cookie
- 本地存储cookie会回退
- Javascript Cookie代码未存储Cookie/读取空Cookie值