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

How can I secure my website from injections (Cookie editing)

本文关键字:注入 Cookie 编辑 网站 我的 保护 何保护      更新时间:2023-09-26

我在Java EE应用程序(客户端为jQuery)中使用cookie,虽然将安全性作为重点,但我知道可以通过阅读文章来读取和编辑cookie。我真的很想利用这些攻击。

我读了如何防止Javascript注入攻击用户生成的HTML在SO和没有找到一个解决方案,使我的cookie安全。

您可以为cookie设置几个标志来降低安全风险。

  1. secure标志。它规定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攻击

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

因此,您可以像对待来自客户端的任何其他数据一样对待它们(除了您不需要担心cookie数据被CSRF攻击伪造)。也就是说:信任cookie就像信任用户一样。

cookie不安全。忘了保护他们吧。

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