Jon*_*Lam 5 php security cookies session client
在我的一些帖子中,当我将用户信息存储在cookie中时,所有评论和答案都说,诸如“……问题的答案……但不要使用Cookie来存储用户信息。这是不安全的。”
在我的一个测试网站中,我存储了一个名为“ user”的cookie,其中包含已登录用户的用户名以及会话变量。我知道这可能是个人信息,但是在网页上显示的是用户名,这真的很重要吗?
黑客能否进入我的网站来更改“用户” Cookie和会话的值,并在没有用户名的情况下登录某人的帐户,将很重要。
这可能吗?如果是这样,怎么办?
此外,如果我需要更新安全性,我如何选择没有Cookie的“保持登录状态”?
谢谢你的帮助。
那么如何防止入侵者修改数据呢?我想为此引入两种机制:
因为Http是无状态协议,服务器会保存一个cookie,通常名为session_id,客户端会在每次请求时发送它。通过这种机制,服务器可以找出哪个用户正在请求。
服务器可以将用户数据存储在所谓的会话变量中,并且只能在服务器中访问它们,并且客户端不能修改它们。
例子:
在服务器的会话存储(磁盘、数据库或 RAM)上:
27: ["username" => "foo"]
35: ["username" => "bar"]
95: ["username" => "fuzz"]
在每个客户端的 cookie 上:
客户1:
"session_id" : 27
客户2:
"session_id" : 35
客户端3:
"session_id" : 95
这个方法有一个Downward:
每个数据都必须存储在服务器中,并且会消耗服务器的空间。
另一种方法是将数据存储在用户 cookie 中,但在存储它们之前,使用密钥对其进行加密。
由于它们是加密的并且客户端尚未访问密钥,因此入侵者无法对数据进行任何有效的更改。
在这种方法中,您只需将加密密钥存储在服务器上。
它不消耗服务器空间(磁盘或内存)
向下:因为每个数据都是在每个 http 请求中从客户端发送的。它消耗服务器的带宽。
例如:Laravel 框架的 Cookie 是加密的。
| 归档时间: | 
 | 
| 查看次数: | 2108 次 | 
| 最近记录: |