1

我正在用 ASP.NET MVC4 开发一个网站,我希望用户在其中上传 HTML5、CSS3 和 JS 生成的应用程序。上传的文件存储在我的服务器上,我目前正在使用 caja.appspot.com 上的 cajoler 来保护它们。我担心的一个问题是,由于 caja.appspot.com 的 cajoler 需要从 url 获取源代码,因此 caja.appspot.com 需要可以访问它。但是,我希望只有 caja.appspot.com 能够访问此页面,而不是其他任何人。如果可以在哄骗者之外访问该页面,这可能意味着一些危险的安全隐患。

有什么办法可以做到吗?也就是说,只有使 caja.appspot.com 能够获取指定的 URL:s。

我曾想过给文件一个随机名称,任何外人都很难猜到。然而,仍然存在有人会得到这个秘密文件名并能够访问该页面的机会。编辑:这是一个非常糟糕的主意,因为文件名在源代码中可见

4

1 回答 1

1

我想出的解决方案是将用户上传的内容放在单独的域中。这样,如果有人在 caja 环境之外访问原始 html 页面,就没有什么可窃取的了。

我对如何使用户上传的“应用程序”能够通过 REST API 与我的站点数据进行通信有一些想法,但是当我将代码放在单独的域中时,这成为了一个问题。因此,我现在让主机页面代表来宾应用程序执行所有 AJAX 请求。这就是说我提供了一个带有 Caja 的 API,来宾代码可以调用它来调用我的 REST API,然后将结果发送回来宾代码中的回调方法。我认为这不是最好的解决方案,但目前我想不出更好的办法。

于 2013-05-02T13:32:21.577 回答