Asp.net core net内核中的CORS问题
在我的一个项目中,csp被定义为Asp.net core net内核中的CORS问题,asp.net-core,content-security-policy,Asp.net Core,Content Security Policy,在我的一个项目中,csp被定义为 var csp = "default-src 'self'; object-src 'none'; frame-ancestors 'none'; sandbox allow-forms allow-same-origin allow-scripts; base-uri 'self';"; if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security
var csp = "default-src 'self'; object-src 'none'; frame-ancestors 'none'; sandbox allow-forms allow-same-origin allow-scripts; base-uri 'self';";
if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security-Policy"))
{
context.HttpContext.Response.Headers.Add("Content-Security-Policy", csp);
}
问题是我的内部JS不工作。我已经包括了淘汰JS,我在那里得到了一个错误
拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default src‘self’”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-SyLtUpmx0OjAxbTKXy2jd0BL8QnTwNgkVdWgf9/eQio=')或nonce('nonce-…')。还请注意,没有显式设置“script src”,因此使用“default src”作为回退
未捕获的EvalError:无法分析绑定。
绑定值:if:sessionType()
消息:拒绝将字符串作为JavaScript求值,因为“unsafe eval”不是以下内容安全策略指令中允许的脚本源:“default src‘self’”
正在此行中获取此错误
<script type="text/javascript">
var returnUrl = '@Model.ReturnUrl';
$(function () {
$(":input").inputmask();
});
</script>
var returnUrl='@Model.returnUrl';
$(函数(){
$(“:input”).inputmask();
});
该..
是一个内联脚本,因此出现错误:拒绝执行内联脚本,因为它违反以下条件 内容安全策略指令:“默认src‘self’”。要么 “不安全内联”关键字,哈希 ('sha256-SyLtUpmx0OjAxbTKXy2jd0BL8QnTwNgkVdWgf9/eQio=')或一个nonce 启用内联执行需要('nonce-…') 您有3个选项允许内联脚本:
- 将
令牌添加到'insafe-inline'
指令中(这严重降低了CSP保护)默认src
- 将
标记添加到'sha256-SyLtUpmx0OjAxbTKXy2jd0BL8QnTwNgkVdWgf9/eQio='
指令中(尽管最好添加默认src
)。负面时刻:更改脚本内容时,必须重新生成一个脚本src'self''sha256-SyLtUpmx0OjAxbTKXy2jd0BL8QnTwNgkVdWgf9/eQio='
'hash-value'
- 将
添加到'nonce-value'
或默认src
中。Nonce值应该在每个页面加载时新生成,因此最好使用脚本src
错误:
eval()
,new Function()
或setTimeout()
/setInterval()
函数调用。在
eval()
/new Function()
的情况下,除了将'safe-eval'
令牌添加到默认src
(或者脚本src
中,如果添加它)。在
setTimeout()
/setInterval()
的情况下-只有当获取函数作为字符串参数时,这些表达式才算作不安全的求值表达式。您可以使用匿名(或命名)函数来避免使用'safe-eval'