2012-02-20 75 views
2

一个cookie如果我使用的代码删除使用Javascript

var a = 'jn=900; expires=Fri, 27 Jul 2013 02:47:11 UTC; path=/'; 

document.cookie = a; 

设置cookie那么可以肯定的是document.cookie = 'jn=900; expires=Fri, 27 Jul 1999 02:47:11 UTC; path=/';将删除cookie。

是否需要设置用于设置Cookie的所有属性以删除Cookie?

即,不管document.cookie = 'jn=900; expires=Fri, 27 Jul 1999 02:47:11 UTC;'是否足以删除上面显示的cookie,还是应该指定用于设置cookie的路径?

假设可以在我删除cookie的页面中访问cookie。

也有可能使用Javascript删除PHP设置的cookie吗?

回答

3

这是一个很好的做法,可以设置路径以避免像在不同域(www.domain.com而不是domain.com)上由错误设置的Cookie问题。

关于第二个问题,答案是肯定的,如果没有标记为HttpOnly,则可以使用Javascript访问并删除由PHP创建的Cookie。

The HttpOnly attribute directs browsers to use cookies via the HTTP protocol only. An HttpOnly cookie is not accessible via non-HTTP methods, such as calls via JavaScript (e.g., referencing "document.cookie"), and therefore cannot be stolen easily via cross-site scripting (a pervasive attack technique[27]). As shown in previous examples, both Facebook and Google use the HttpOnly attribute extensively.

http://en.wikipedia.org/wiki/HTTP_cookie#HttpOnly_cookie