我有一个用例,我需要为一堆查询生成csv报告。
我在后端写了一个常见的POST
reqHandler,用nodejs / express编写,它接收一个json对象,如下所示
{
"converter": <converter function>,
"fields": <CSV header fields >,
"reqUrl": <REST API>,
"queryObj": <queryObject for the API>
}
在后端,我eval()
转换器函数并从REST API执行响应对象上的函数,格式化响应并使用res.download
将附件返回给客户端。
对此有何安全隐患?有没有其他方法来解决这个问题?
PS:此端点仅可供特定用户组访问(例如,管理员)
答案 0 :(得分:0)
首先评估直接来自帖子请求的代码是一种非常糟糕的安全操作,因为用户可能会向您的应用程序发送任何javascript函数,因此您的应用程序会暴露在严重的安全威胁之下。即使此帖子网址仅供管理员访问,您仍然希望过滤他们可以执行的javascript数量。我建议你创建一个包含你需要的函数的对象,然后从post请求发送该函数的名称或别名。这样,您就可以限制用户的访问权限以及系统可能面临的威胁。
根据我的经验,即使系统仅供我们的运营部门使用,它仍然会受到“事故”所引起的许多安全问题的影响。