在Javascript中启用对cookie的只读访问权限

时间:2013-02-06 09:33:38

标签: javascript http cookies

是否有可能在javascript中禁用设置cookie而stil能够读取它们? 在我的网站上我只在php中设置了cookie,但是我可以从Javascript中读取它们。 我知道在创建cookie时会有一个httpOnly标志但限制了Javascript的读写访问权限。 我想限制写访问的原因当然是安全性,因为用户甚至可以从浏览器轻松设置cookie,我想阻止它。

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

MY_COOKIE_HTTP_ONLY

MY_COOKIE

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

另一方面,您可以通过比较值来识别这种情况。

答案 2 :(得分:0)

您可以通过覆盖 document.cookie

的设置者来预设浏览器设置javascript Cookie
document.__defineGetter__("cookie", document.__lookupGetter__("cookie") );
document.__defineSetter__("cookie", function() {} );

答案 3 :(得分:0)

正如其他人所述,您不能阻止用户在自己的计算机上编辑文件,这实际上是您需要采取的行动,以阻止用户编辑Cookie。

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