我已经构建了一个Angular应用程序,最近对该应用程序进行了安全漏洞扫描,团队建议添加content-security-policy
标头以防止XSS攻击。添加这些标头后,我的应用甚至无法打开,只是一个黑色页面,控制台中出现错误。
未捕获的EvalError:拒绝将字符串评估为JavaScript,因为在以下内容安全策略指令中不允许使用'unsafe-eval'脚本源:“ default-src'unsafe-inline' .mycompany.me wss:// .mycompany.me ws:// .mycompany.me https:// .s3-ap-south-1.amazonaws.com Blob:数据:https:“
不建议添加'unsafe-eval',因为它会使应用程序遭受XSS攻击,因此无法将值添加到CSP标头中。
Content Security Policy
中的所有内容。我怀疑AppModule甚至没有加载,并且该应用卡在index.html页面中。因为我在AppComponent加载时只有很少的xhr调用,但是当我在Chrome中检查“网络”标签时却没有发生。 我正在使用角形材料。这是我的index.html页面。
<html lang="en">
<head>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<!-- KaTex -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.5.1/katex.min.css">
<meta charset="utf-8">
<title>My Angular App</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.png" sizes="32x32">
</head>
<body>
<app-root></app-root>
</body>
</html>
我还应该在CSP标头中将googleapis
和cloudflare
列入白名单吗?
Refused to evaluate a string as JavaScript
。 如何在此处调试字符串,这会造成麻烦?如果可以在源代码中找到它,那么我可以做些什么。 任何建议都会很有帮助。预先感谢。