0

我目前正在为多个网站编写自定义 cookie 法律解决方案。我正在尝试使解决方案/插件尽可能多地成为“一体化解决方案”,并将代码作为脚本的第一位包含在内。目前我几乎已经完成了所有事情,而且看起来都非常漂亮,我想让用户能够“接受”或“拒绝”,而不仅仅是将他们重定向,但仍然允许他们使用该网站。

到目前为止,我已经为接受和拒绝正确设置了一个 cookie,它根据接受或拒绝的选择在 cookie 中设置真值或假值。

我想在 if 语句中使用我找到的代码重新定义 cookie setter 和 getter,以防止在用户未授予权限或尚未选择答案的情况下设置 cookie。

document.__defineGetter__("cookie", function() { return '';} );
document.__defineSetter__("cookie", function() {} );

到目前为止,我有这段代码来检查用户是否允许 cookie,

if(checkCookie != true){
    // Run code to redefine cookie setter getter to prevent cookies from being set
}else{
    // Don't do anything and the cookies should be run as usual.
};

有人可以启发我或为我指出正确的方向,如我所解释的那样使用 cookie setter 和 getter 吗?

4

1 回答 1

0

正如亚历克斯·韦恩 (Alex Wayne) 在对您的问题的评论中所说的那样,在您看到<html>标签进入浏览器之前就设置了 cookie。

http 是这样的:

HTTP/1.1 200 OK
Server: Nginx
Content-Length: x (size of the following content)
Content-Type: text/html (this is what identifies it as html)
Set-Cookie: foo=bar; expires=Tue, 4-Dec-2012 19:30:42 GMT; Max-Age=2592000; Path=/; Version="1"

<!DOCTYPE html>
<html>
...

你可以做,并且必须做的是设置一个“不要跟踪我”会话cookie,告诉服务器不要将任何cookie放到服务的请求中。

另一种方法是在地址栏中设置一个 get 变量,告诉服务器不要设置跟踪 cookie。

这就是饼干的真正用途。

于 2012-11-23T09:17:31.617 回答