饼干安全吗?

2 javascript cookies xss jquery 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);
}
Run Code Online (Sandbox Code Playgroud)

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

我可以假设 cookie 是安全的,并且除了用户和应用程序之外的任何人都不能修改,所以不可能进行 xss 攻击,还是我需要验证它们?

我将在设置 cookie 时对其进行验证,我的问题是我是否可以信任我自己的 cookie。

Tim*_*hiy 5

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

重要 正如@Eda190 在对以下答案的评论中所述,您不应仅保护 cookie 免受 XSS 的侵害,还应保护您的应用程序。这是一个很好的备忘单