2

是否可以在仍然能够读取它们的同时禁用在 javascript 中设置 cookie?在我的网站中,我仅在 php 中设置 cookie,但我可以从 Javascript 中读取它们会很有用。我知道在创建 cookie 时有一个 httpOnly 标志,但它限制了 Javascript 的读写访问。我想限制写访问的原因当然是安全性,因为用户甚至可以从浏览器轻松设置 cookie,我想防止这种情况发生。

4

4 回答 4

2

您可以做的是创建两个 cookie:

MY_COOKIE_HTTP_ONLY

MY_COOKIE

在后端使用相同的值。一个仅是http,另一个不是。MY_COOKIE_HTTP_ONLY cookie 将用于后端,MY_COOKIE 将用于浏览器。如果攻击者在浏览器端更改 MY_COOKIE 的值,那基本上没问题,因为如果攻击者可以访问您的浏览器,他们可以做各种各样的事情,但只能在浏览器端。

另一方面,您将能够通过比较这些值来识别这种情况。

于 2017-02-09T11:07:27.820 回答
1

最短的答案:不。这是不可能的。

于 2013-02-06T09:34:35.563 回答
0

正如其他人所说,您不能阻止用户在他们自己的计算机上编辑文件,这实际上是阻止他们编辑 cookie 所需要做的。

但这并不意味着你没有选择。您可以在 cookie 中包含身份验证代码(如HMAC )。用户仍然可以读取和更改该 cookie,但至少您将能够检测到他们何时这样做并忽略提供的数据。

于 2019-01-09T09:10:15.417 回答
0

您可以通过覆盖setter来阻止浏览器设置 javascript cookiedocument.cookie

document.__defineGetter__("cookie", document.__lookupGetter__("cookie") );
document.__defineSetter__("cookie", function() {} );
于 2018-04-18T07:24:24.053 回答