iis CSP兼容性:通配符指令

pgky5nke  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(205)

当我扫描我的网站时,我得到了可扩展性CSP:通配符指令。
这是我的响应头:

default-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;script-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https: ;style-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;connect-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;font-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;img-src 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;base-uri 'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;form-action 'none';frame-src 'self';frame-ancestors 'self'

字符串
(为了便于阅读,下面进行了分解):

default-src     'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
script-src      'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
style-src       'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
connect-src     'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
font-src        'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
img-src         'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
base-uri        'self' 'nonce-A1A858B312C6D596C4CA536BD2D20F67' https:;
form-action     'none';
frame-src       'self';
frame-ancestors 'self'


如何解决这个错误?

w8rqjzmb

w8rqjzmb1#

根据Web应用程序的要求和安全需求,有几种方法可以修复CSP通配符指令漏洞。以下是一些最佳实践:
1.使用严格的CSP标头:严格的CSP头只允许Web应用程序加载特定的内容源,从而减少攻击面。例如,考虑以下CSP头:Content-Security-Policy:default-src 'self' 'unsafe-inline' 'unsafe-eval' https:;在这个标题中,我们只允许从同一个域('self')加载内容,允许内联脚本和样式('unsafe-inline'),并允许脚本在同一个域上执行('unsafe-eval')。我们还允许从HTTPS源(https:)加载内容。
1.使用nonce属性:nonce属性是由服务器生成的随机值,包含在CSP标头中。它允许Web应用程序执行内联脚本,但前提是这些脚本与nonce值匹配。这可防止攻击者将恶意内联脚本注入Web应用程序。例如,请考虑以下CSP标头:Content-Security-Policy:script-src 'nonce-ABC123' https:;在这个头文件中,我们只允许从HTTPS源(https:)加载脚本,以及匹配nonce值('nonce-ABC123')的内联脚本。
1.使用sha 256属性:sha 256属性类似于nonce属性,但它允许基于其哈希值执行特定的内联脚本。当Web应用程序需要执行无法包含在单独文件中的特定内联脚本时,这很有用。例如,考虑以下CSP标头:Content-Security-Policy:script-src 'sha 256-ABC123' https:;在这个头文件中,我们只允许从HTTPS源(https:)加载脚本,以及具有哈希值ABC123的内联脚本。
1.避免使用unsafe-inline和unsafe-eval指令:unsafe-inline指令允许Web应用程序执行内联脚本和样式,而unsafe-eval指令允许从字符串执行脚本。应避免使用这些指令,因为它们会显著增加Web应用程序的攻击面。
1.定义特定的内容源:在CSP标头中定义内容源时,必须尽可能具体。例如,我们可以定义Web应用程序信任的特定域或子域,而不是允许从任何域(*)加载内容。这减少了攻击面,并提高了应用程序的整体安全性。

相关问题