我如何保护我的网站从注入(Cookie编辑)
How can I secure my website from injections (Cookie editing)
我在Java EE应用程序(客户端为jQuery)中使用cookie,虽然将安全性作为重点,但我知道可以通过阅读文章来读取和编辑cookie。我真的很想利用这些攻击。
我读了如何防止Javascript注入攻击用户生成的HTML在SO和没有找到一个解决方案,使我的cookie安全。
您可以为cookie设置几个标志来降低安全风险。
-
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,因为它是明文发送的,把它放在自己的浏览器中,并作为用户登录
-
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
- 使用Objective-C的JavaScript注入方法
- 正在注入包含JS的HTML
- 在jquery中为显示/隐藏设置cookie
- 迷你$provider注入茉莉花和角
- 按下按钮时保存cookie
- Angularjs工厂注入错误
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 如何在Ionic Android中将Javascript注入到web视图中
- 如何在Analytics.js中始终了解最新的cookie过期时间
- php httponly cookie在浏览器关闭时被删除
- 如何在提交表单时将PHP变量传递到Javascript cookie中
- Android Webview通过Javascript注入CSS
- CORS-服务器端cookie没有保存在chrome浏览器上
- 如何为后台更改程序代码设置cookie
- Meteor:在启动时将html注入客户端文件
- 如何从另一个域加载cookie
- Chrome API未在嵌套回调中注入cookie
- 如何在angularjs的自定义服务中注入$cookie
- 为什么我不能注入角cookie
- 我如何保护我的网站从注入(Cookie编辑)