网站用户可以更改cookie或会话数据吗?

时间:2014-05-03 20:04:47

标签: php security session cookies client

在我的一些帖子中,当我将用户信息存储在cookie中时,所有的评论和答案都说了些什么,等等......回答问题...但不要使用COOKIES来存储用户信息。 IT' S INSECURE。"

在我的一个测试网站中,我存储了一个名为" user"它包含登录用户的用户名以及会话变量。我知道这可能是个人信息,但在网页上显示用户名,那真的很重要吗?

如果黑客可以进入我的网站来改变用户的价值,那就很重要了。 Cookie和会话,并在没有用户名的情况下登录某人的帐户。

这可能吗?如果是这样,怎么样?

此外,如果我需要更新我的安全性,我将如何选择"保持登录状态"没有饼干?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

是的,Cookie存储在客户端中,可以修饰

那么如何防止入侵者修改数据?我想为此介绍两种机制:

存储在会话中,使用Cookie进行访问

由于Http是无状态协议,服务器将保存一个通常名为 session_id 的cookie,客户端将在每次请求时发送该cookie。 通过这种机制,服务器可以找出正在请求的用户。

服务器可以将用户数据存储在所谓的会话变量中,并且可以仅在服务器中和客户端不能对其进行访问。

示例:

在服务器的会话存储(磁盘,数据库或内存)上

27: ["username" => "foo"]
35: ["username" => "bar"]
95: ["username" => "fuzz"]

在每个客户的Cookie上:

客户端1:

"session_id" : 27

客户端2:

"session_id" : 35

客户端3:

"session_id" : 95

此方法具有向下

每个数据都必须存储在服务器中,并且会占用服务器的空间。

存储在Cookie中,使用密钥访问

另一种方法是将数据存储在用户cookie中,但是在存储它们之前,请先使用密钥对其进行加密

由于它们已经加密并且客户端无法访问密钥,因此入侵者无法对数据进行任何有效的更改。

使用这种方法,您只需将加密密钥存储在服务器上。

它不会占用服务器的空间(磁盘或内存)

向下:由于每个HTTP请求中的每个数据都是从客户端发送的。它消耗服务器的带宽

例如:Laravel Framework的Cookie已加密。