是否安全使用令牌身份验证并让用户在子域上执行自定义Javascript代码

时间:2014-06-05 00:20:35

标签: ruby-on-rails ember.js

我正在帮助创建一个使用Ember作为前端MVC的Rails应用程序。对于应用程序,它托管通过子域访问的用户内容。在子域上,用户可以上传自定义JS和CSS。我想知道的是,如果根据自定义JS存储在Ember中,根域上的令牌身份验证是否安全?人们可以在其子域上载和运行吗?

1 个答案:

答案 0 :(得分:1)

提供以下内容:

  • 请勿在* .domain.com上使用Cookie或根本不使用Cookie。
  • 他们无法在主站点上运行(或以任何方式真正显示未转义的)JS / CSS。
  • 带有令牌的ember应用程序不会在其子域上运行(显然)。
  • 他们不能将HTML放在子域中具有不同扩展名甚至Content-Type的文件中(或者您没有使用cookie)。他们可以在那里指导用户的网络浏览器并显示HTML。但是要警惕网络钓鱼(看起来这是你的安全内容)。我无法想象除了不使用cookie之外,你可以轻易地防止这种情况 - 没有100%确保格式正确的JS / CSS会出现各种各样的问题。

您可以将Cookie限制为domain.com和www.domain.com,但我不建议(容易出错)。如果你不这样做,有人可以通过CSS或即发出GET请求。一个图像标记(更不用说JavaScript),它会将经过身份验证的cookie发送到您的服务器。记住他们的应用程序中未转义的输入也会留下漏洞。

如果您的令牌存储在ember中,并且他们可以访问应用程序运行的自定义JS,那么它将使您的令牌容易受到攻击。如果您只在www.domain.com上运行您的余烬应用程序,请避免使用cookie,仅在本地/ JS中存储令牌,您可能没问题。

如果他们只是将HTML代码放在带有其他扩展名的文件中并引导人们将其解释为HTML。

相关问题