我想创建一个网页,如果我的网页之前设置了某些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。
答案 0 :(得分:4)
您应始终验证用户提供的数据并假设可以对其进行修改。它甚至可以不是由第三方修改,而是由恶意用户或有权访问合法用户浏览器的人修改。您还应该保护包含XSS用户个人数据(电子邮件,密码,地址等)的cookie。一个好方法是使用HttpOnly flag。更好的方法是加密cookie,因此只有您的应用程序知道其内容。这样也可以防止cookie内容直接访问。
重要正如@ Eda190在对以下答案的评论中所述,您不应仅保护来自XSS的Cookie,而应保护您的应用程序。这是一个很好的cheat sheet。
答案 1 :(得分:0)
没有。 Cookie根本不是安全的,应该包含最少量的数据,或者你应该用盐加密它们。
有一件事要说,你发送给客户的任何东西,POST,GET或Cookies。一切都可以修改。然而,许多人都不知道改进cookie。大多数人都会想到可食用的饼干。因此,如果您的数据不重要,请使用cookies。
如果数据很重要,则是登录信息等,使用多个高度编码或更精确的散列。如果没关系那么饼干就没问题了。