我不确定如何对问题进行说明,因此请随意推荐标题的修改,但我有一些关于一些网络开发实践的一般(但希望具体到足够的)安全问题我和#39我遇到了。
有像EJS这样的模板系统允许代码在客户端运行。如果Web应用程序允许用户将JS和HTML文件上传到服务器以向公众提供服务,那么安全问题有哪些(如果有的话)?请注意,上传的JS / HTML文件只能通过放置在适当的文件夹(即资产文件夹)中公开提供。
如果不允许使用模板系统,但仍允许用户上传任意JS / HTML文件,那么仍存在哪些安全问题?
一些假设:
如果这太笼统,请告诉我如何澄清。我只是想朝着正确的方向努力。
答案 0 :(得分:0)
如果您真的只想保护服务器的数据和完整性: 只是转义文件,这样它们只被视为字符串而无法执行。稍后您使用该字符串并将其简单地写回文件。
确保稍后提供文件的服务器(例如来自资源文件夹)具有非常有限的权限(正是您需要提供的权限)。我建议您将node.js服务器拆分为两个。一个用于提供文件(非常有限的功能),另一个用于转义上传的文件并将它们放入例如你的资产文件夹。
但请注意,其他人可能会将您的服务用于CSRF和其他一些恶意内容。