我正在ASP.NET MVC4中开发一个网站,我希望用户能够上传HTML5、CSS3和JS生成的应用程序。上传的文件存储在我的服务器上,我目前正在使用caja.appspot.com的诱饵来保护它们。我关注的一个问题是,由于caja.appspot.com的诱骗者需要从url中获取源,所以caja.appspot.com需要访问它。然而,我只希望caja.appspot.com能够访问这个页面,而不是其他任何人。如果页面可以在诱骗者之外被访问,这可能意味着一些危险的安全隐患。
有什么办法可以做到吗?也就是说,只有使caja.appspot.com能够获取指定的URL:s。
我曾经想过给这个文件一个随机的名字,这个名字应该很难被外人猜到。然而,仍然存在这样的可能性,即有人会获得这个秘密文件名并能够访问该页面。编辑:这是一个非常糟糕的主意,因为文件名在源代码中是可见的。
发布于 2013-05-02 13:32:21
我想出的解决方案是将用户上传的内容放在一个单独的域上。这样,如果有人要访问caja环境之外的原始html页面,就没有什么可窃取的。
对于如何让上传的“应用程序”能够通过REST与我的站点数据进行通信,我有一些想法,但是当我将代码放在一个单独的域上时,这就成了一个问题。因此,我现在让主页代表来宾应用程序执行所有AJAX请求。也就是说,我提供了一个带有Caja的API,客户代码可以调用这个API来调用REST,然后将结果发送回来宾代码中的回调方法。我不认为这是最好的解决办法,但我现在想不出更好的办法。
https://stackoverflow.com/questions/16275143
复制相似问题