据我理解,内容安全策略头部(或页面头部的元标签)指定了允许在网页中加载哪些元素。
这意味着,如果攻击者能够修改页面内容,并添加调用有害 JavaScript 脚本的代码,则该脚本不会被加载,因为它来自 CSP 没有明确允许的域名。
这样说是否正确?
如果是这样的话,是什么阻止攻击者修改 CSP 头本身,从而使其脚本得以调用?
据我理解,内容安全策略头部(或页面头部的元标签)指定了允许在网页中加载哪些元素。
这意味着,如果攻击者能够修改页面内容,并添加调用有害 JavaScript 脚本的代码,则该脚本不会被加载,因为它来自 CSP 没有明确允许的域名。
这样说是否正确?
如果是这样的话,是什么阻止攻击者修改 CSP 头本身,从而使其脚本得以调用?
有许多情况下攻击者可以修改页面,但不能修改头文件。
例如,注入脚本的XSS攻击将能够注入其他脚本,但无法修改随初始页面发送的标头。CSP可以防止注入的脚本运行,并且还可以防止其加载任何其他脚本。
CSP是深度防御的一个例子。即使在攻击者完全接管托管页面的服务器时它失败,也并不意味着它没有价值。
<meta>
标签,但如果头部更为严格,则会被忽略。实际上,元标记只能加强头部指定的内容,而不能放宽它。 - user229044