Eval()

时间:2018-06-03 13:51:25

标签: security laravel-5 vue.js content-security-policy

我正在开发一个仍然是本地的网站。我安装了this包以将正确的CSP添加到我的站点(我使用Laravel& VueJs构建)。

我已逐一解决了这些问题。但现在在我的Chrome控制台中,我再也看不到任何CSP错误了。它只显示一个空白页面。我在Firefox中打开了这个网站。在那里,在控制台中,我遇到了以下错误:

  

内容安全策略:页面的设置阻止了加载   自我资源(“script-src”)。来源:致电eval()或相关   功能被CSP阻止。

我在生成的包中搜索了eval()函数,但它并没有出现在任何文件中。这里有人对我如何解决这个问题有一些建议吗?

1 个答案:

答案 0 :(得分:-1)

正如您在注释中发现的那样,它来自其他一些函数使用的隐式eval(例如setTimeout或用字符串调用的setInterval)。不幸的是,您不能只对单个脚本进行不安全评估。因此,您最终可能会在整个站点上允许进行不安全评估。实际上,这在我见过的CSP标头中极为常见。

CSP标头像这样非常黑白。通常,您的选择是完全允许或完全阻止某项。我在Enchanted Security处正在开发另一种解决方案,该解决方案可以检查对重要浏览器功能(主要是网络请求)的调用,以(1)跟踪它们以供将来进行脱机分析和审核,(2)阻止那些认为不安全的调用。