饼干安全吗?

Are cookies safe?

我想创建一个网页,如果我的网页之前设置了一些 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。

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

重要 正如@Eda190 在对以下答案的评论中所述,您不应该只保护 cookie 免受 XSS 攻击,而应该保护您的应用程序。这里有一个很好的cheat sheet.

没有。 Cookie 一点也不安全,应该包含最少的数据,或者您应该用盐很好地加密它们。

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

如果数据很重要,比如登录信息等,请使用多个高度编码或更精确的散列。如果没关系,cookie 也不是问题。