饼干安全吗?

时间:2015-03-07 13:07:19

标签: javascript jquery cookies xss jquery-cookie

我想创建一个网页,如果我的网页之前设置了某些Cookie,则该网页会重定向用户。像这样:(我使用的是jquery cookie插件)

// get cookies
var email = $.cookie("email_addr");
var postcode = $.cookie("post_code");

if(email != undefined && postcode != undefined) {
    // insert cookies into redirect url
    var redirect =
    "https://docs.google.com/forms/d/1BofVyLFj9-Y2RQ8LxZuaptS071yHDqW4cdZhvvqTNz8/viewform?entry.139029761=" + email +
    "&entry.1727046863=" + postcode;
    console.log(redirect);
}

(为了便于阅读,省略了URL字符替换)

我可以假设这些cookie是安全的,并且除了用户和应用程序之外不能被任何人修改,因此无法进行xss攻击,或者我是否需要验证它们?

我会在设置时验证Cookie,我的问题是我是否可以信任自己的Cookie。

2 个答案:

答案 0 :(得分:4)

您应始终验证用户提供的数据并假设可以对其进行修改。它甚至可以不是由第三方修改,而是由恶意用户或有权访问合法用户浏览器的人修改。您还应该保护包含XSS用户个人数据(电子邮件,密码,地址等)的cookie。一个好方法是使用HttpOnly flag。更好的方法是加密cookie,因此只有您的应用程序知道其内容。这样也可以防止cookie内容直接访问。

重要正如@ Eda190在对以下答案的评论中所述,您不应仅保护来自XSS的Cookie,而应保护您的应用程序。这是一个很好的cheat sheet

答案 1 :(得分:0)

没有。 Cookie根本不是安全的,应该包含最少量的数据,或者你应该用盐加密它们。

有一件事要说,你发送给客户的任何东西,POST,GET或Cookies。一切都可以修改。然而,许多人都不知道改进cookie。大多数人都会想到可食用的饼干。因此,如果您的数据不重要,请使用cookies。

如果数据很重要,则是登录信息等,使用多个高度编码或更精确的散列。如果没关系那么饼干就没问题了。