允许Javascript - 防范XSS? (独特场景)

时间:2009-09-29 22:56:35

标签: javascript security cookies xss

我正在构建一个应用程序(一个更具体的CMS),它允许用户将Javascript添加到他们的内容中。实际上没有办法允许Javascript,因此,一些安全问题现在变得非常明显。我们主要关心的是cookie被盗。

为了更多地解释系统,CMS允许单个用户访问多个站点。用户可以邀请其他用户编辑其网站。访问站点的人将执行已添加的任何JS。

以下是我们试图解决的问题:

  1. 恶意用户“Evil Bob”编写Javascript以读取Cookie并通过电子邮件发送给他。
  2. 邪恶的鲍勃邀请我编辑他们的网站
  3. 我查看网站,我的cookie被发送给邪恶的鲍勃。
  4. Evil Bob现在可以访问我的cookie,并且可以编辑我有权访问的任何网站。
  5. 我们添加了一些cookie防盗保护,这使得欺骗cookie变得有点困难。如果要使用被盗的cookie,您还必须欺骗所有标题以匹配受害者的标题。

    我们已经有了一些修复方法,例如将每个网站放在一个单独的子域上,并要求为每个帐户单独登录。也许这是最好的解决方案。

    还有其他建议吗?

3 个答案:

答案 0 :(得分:2)

感谢您的回答!

我们最终将每个帐户放在unqiue子域上,所以即使cookie被盗,它也只会影响一个站点,而不是所有你拥有的站点。这意味着恶意用户只能访问他们已有的内容。

答案 1 :(得分:1)

如果您有这样一个关键应用程序,您可能需要考虑添加服务器端会话表并将它们与客户端cookie进行比较,以避免高昂的cookie,并将邪恶的bob的手从你的cookie罐中拿出来!

答案 2 :(得分:1)

您可以尝试通过Google's CajaCrockford's AdSafe之类的内容来清理javascript。

不幸的是,这些解决方案仍在正在进行中,尽管Caja目前非常可靠并且正在积极开发(它只是没有实现)所有的DOM)。