Javascript 任意JS/HTML上传的Web安全性

Javascript 任意JS/HTML上传的Web安全性,javascript,node.js,security,templating,Javascript,Node.js,Security,Templating,我不知道该如何表达这个问题,所以请随意为标题推荐编辑,但我有几个关于我遇到的一些web开发实践的一般性(但希望足够具体)安全问题 有一些模板系统,比如EJS,允许代码在客户端运行。如果web应用程序允许用户将JS和HTML文件上传到服务器,以向公众提供服务,那么有哪些安全问题(如果有的话)?请注意,上传的JS/HTML文件只能通过放置在适当的文件夹(即资产文件夹)中公开提供 如果不允许模板系统,但仍然允许用户上载任意JS/HTML文件,那么还有什么安全问题 一些假设: 带有一些MVC框架的No

我不知道该如何表达这个问题,所以请随意为标题推荐编辑,但我有几个关于我遇到的一些web开发实践的一般性(但希望足够具体)安全问题

有一些模板系统,比如EJS,允许代码在客户端运行。如果web应用程序允许用户将JS和HTML文件上传到服务器,以向公众提供服务,那么有哪些安全问题(如果有的话)?请注意,上传的JS/HTML文件只能通过放置在适当的文件夹(即资产文件夹)中公开提供

如果不允许模板系统,但仍然允许用户上载任意JS/HTML文件,那么还有什么安全问题

一些假设:

  • 带有一些MVC框架的Node.js服务器
  • 敏感数据集存储在服务器上,但只能由Node.js服务器直接访问
  • 用户只能通过请求来访问数据集,管理员可以批准/拒绝该请求
  • 不担心网络钓鱼等社会工程攻击(寻找更多危害数据的攻击)

如果这太笼统,请告诉我如何澄清。我只是在寻找一个正确的方向。

如果您真的只是想保护服务器的数据和完整性: 只需转义这些文件,这样这些文件就只能作为字符串处理,无法执行。稍后,使用字符串并将其直接写回文件

确保稍后提供文件的服务器(例如,来自资产文件夹)的权限确实有限(仅限于提供这些文件所需的权限)。我建议您将node.js服务器分成两部分。一个是为文件提供服务(功能非常有限),另一个是逃避上传的文件并将其放入例如您的资产文件夹中


但是,请注意,其他人可能会将您的服务用于CSRF和其他恶意内容。

如果您的用户被允许上传任意JS和HTML代码,他们可能会将其用于CSRF,这可能会危害其他人的数据,对吗,但我主要是在服务器上保存的数据上寻求妥协。你可能想在另一个SE站点上问这样的问题,比如。一定要阅读他们关于如何询问页面以确保它和那个网站相关的内容。事实上,这个问题似乎过于宽泛了。我确实考虑过了,但我不能用更具体的方式来表述我的问题,因为它对我来说真的是无止境的。如果这里的答案有一些澄清,那么如果我有更具体的问题,我肯定会转到安全SE。