Javascript Ext JS 4-不可更改的Cookie

Javascript Ext JS 4-不可更改的Cookie,javascript,extjs,cookies,extjs4,session-cookies,Javascript,Extjs,Cookies,Extjs4,Session Cookies,我需要通过HTML cookies防止劫持攻击。我用它来管理会话;但我希望最终用户(实际上是劫机者)不改变它。它只能通过应用程序功能进行更改。对于这种情况有什么解决方案吗?因为cookies是客户端的一项功能,所以总是有办法篡改它。您必须将它们与服务器端的会话结合使用。这样,您就能够检测到cookie何时被篡改 这与extjs无关,但通常适用于Cookie 我相信ECMAScript 6的功能最终会解决这个问题,新版本的Firefox和Chrome都支持ECMAScript 6的功能(如果启用了

我需要通过HTML cookies防止劫持攻击。我用它来管理会话;但我希望最终用户(实际上是劫机者)不改变它。它只能通过应用程序功能进行更改。对于这种情况有什么解决方案吗?

因为cookies是客户端的一项功能,所以总是有办法篡改它。您必须将它们与服务器端的会话结合使用。这样,您就能够检测到cookie何时被篡改


这与extjs无关,但通常适用于Cookie

我相信ECMAScript 6的功能最终会解决这个问题,新版本的Firefox和Chrome都支持ECMAScript 6的功能(如果启用了实验性JavaScript):

但除了等待,如果您的cookie是一个对象,您可以使用,这非常漂亮:

var cookie = {cookie: 'username=David;'};
Object.freeze(cookie);
cookie.cookie = 'username=Lincoln;';  // returns "username=Lincoln;"
console.log(cookie.cookie);  // returns "username=David;"

不幸的是,cookie对象可以被覆盖,但它至少可以防止简单的攻击。

感谢@LorenzMeyer的关心。你完全正确,如果主题是安全性,就没有保证的方法。当然,服务器端是cookie管理的真正场所;但正如我们大家所做的那样,我们偶尔会在cookies中存储一些信息。至少我不希望它被一个简单的命令改变,比如
setCookie('x','y')
。我通过它的价值实现了它;它应该是
null(未定义)
,以便设置新值。
var cookie = {cookie: 'username=David;'};
Object.freeze(cookie);
cookie.cookie = 'username=Lincoln;';  // returns "username=Lincoln;"
console.log(cookie.cookie);  // returns "username=David;"