如何保护我的网站不被注入(Cookie编辑)

时间:2013-03-01 19:31:42

标签: javascript jquery java-ee cookies security

我在我的Java EE应用程序中使用cookie(客户端上的jQuery),并以安全性为关键点,我开始知道可以通过阅读article来读取cookie并编辑它们。 。我真的很想从这些攻击中做出应用。

我在SO上阅读了How to prevent Javascript injection attacks within user-generated HTML,但未找到使我的Cookie安全的解决方案。

3 个答案:

答案 0 :(得分:1)

除非您的网站(或用户的系统)存在其他漏洞,否则第三方无法修改Cookie。

因此,您可以将它们与来自客户端的任何其他数据完全相同(除了您不必担心cookie数据被伪造为CSRF attack)。也就是说:信任cookie,就像信任用户一样。

答案 1 :(得分:1)

您可以为Cookie设置多个标志以降低安全风险。

  1. 安全标志。它要求cookie只能通过https发送。即使您的网站使用https,这也很重要。为什么?假设银行网站强制最终用户使用https。用户通过https连接到银行站点,登录成功。银行站点通过https将cookie发送回用户浏览器。假设黑客可以嗅探网络并查看最终用户和银行网站之间的所有明文通信。显然,就目前而言,黑客看不到任何东西,因为cookie是通过安全通道传输的。如果未设置HttpOnly标志,黑客可以执行此操作

    a)黑客创建了一个网站www.maliciouscode.com。

    b)他通过链接向最终用户发送电子邮件,诱使最终用户访问该网站。

    c)用户接受诱饵,通过另一个浏览器标签连接到http://www.maliciouscode.com站点。

    d)恶意网站通过http将用户浏览器重定向到银行网站。

    e)用户浏览器通过HTTP将cookie发送到银行网站。

    f)黑客拦截cookie,因为它以明文形式发送,将其放在自己的浏览器中并以用户身份登录

  2. HttpOnly 标志。这个名字具有误导性。它不是安全标志的反面。这意味着cookie只能由浏览器仅通过http(和https)协议使用,但不能被其他方式使用,例如JavaScript。如果支持HttpOnly的浏览器检测到包含HttpOnly标志的cookie,并且客户端脚本代码尝试读取cookie,则浏览器返回一个空字符串作为结果。这是为了防止XSS攻击。

答案 2 :(得分:-2)

Cookie不安全。忘记保护他们。

  • 您应该通过HTTPS进行所有通信来保护您的服务器。 HTTPS保护您的cookie比其他任何东西都要多(但它不能防止会话劫持)。
  • 不要在会话ID以外的cookie中存储任何敏感信息。
  • 确保您的Cookie仅配置为HTTP。如果不是,会话ID将作为查询字符串的一部分发送,并且可以被任何一个截获(和缓存)。
  • 在用户登录,密码更改等重大事件上重新生成会话ID