2013-03-01 59 views
0

我在我的Java EE应用程序(客户端上的jQuery)中使用Cookie,并以安全为关键点,我开始知道可以读取Cookie并通过阅读article来编辑它们。我真的想从这些攻击中解脱出来。如何保护我的网站免受注射(Cookie编辑)

我在SO上读了How to prevent Javascript injection attacks within user-generated HTML,但没有找到解决方案来保证我的cookies安全。

+1

你到底在用什么cookies?你的后端是否支持会话和会话ID?使用会话ID并在会话中存储数据不是防弹的,但它比直接将cookie存储在cookie中更安全。确切地说, – 2013-03-01 19:33:26

+0

,会话ID和用户的一些事务ID也是。 – 2013-03-01 19:34:31

回答

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攻击。

+0

谢谢。这很好。请试着使用这两个标志。 – 2013-03-02 06:27:06

1

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

因此,您可以像对待来自客户端的任何其他数据一样对待它们(除非您不需要担心cookie数据与CSRF attack伪造)。也就是说:尽可能多地信任该用户。

-2

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

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

Cookie在Cookie标头中发送,从不在查询字符串中。只将cookie设置为HTTP只会告诉浏览器不要让JavaScript通过它们。 – Quentin 2013-03-02 00:12:42

+0

对不起!得到它了 ! – Pradeep 2013-03-04 23:17:12