内容安全策略(CSP)是什么意思?()
优采云 发布时间: 2021-04-27 05:00
内容安全策略(CSP)是什么意思?()
内容安全策略(CSP)
内容安全策略(CSP)是用于检测和缓解某些类型的攻击(包括跨站点脚本(XSS(en-US))和数据注入攻击)的附加安全层。无论是数据盗窃,网站内容污染还是恶意软件分发,这些攻击都是主要方法。
CSP设计为完全向后兼容(除了CSP2中在向后兼容性中明确提到的不一致之处;有关更多详细信息,请参见本章[k21] 1)。不支持CSP的浏览器也可以与CSP兼容)。服务器正常协作,反之亦然:不支持CSP的浏览器只会忽略它,并照常运行,并且默认情况下对Web内容使用标准的同源策略。如果网站不提供CSP标头,则浏览器也将使用该标准。
为了使CSP可用,您需要配置Web服务器以返回Content-Security-Policy HTTP标头(有时您会看到一些对X-Content-Security-Policy标头的引用,即旧版本,则无需这样指定。)
此外,元素也可以用于配置策略,例如
CSP的主要目标是减少和报告XSS攻击。 XSS攻击利用了浏览器对从服务器获得的内容的信任。该恶意脚本在受害者的浏览器中运行,因为该浏览器信任其内容的来源,即使有时该脚本并非来自其应有的位置。
CSP使服务器管理员可以通过指定有效域(即浏览器识别的可执行脚本的有效源)来减少或消除XSS攻击所依赖的媒介。与CSP兼容的浏览器将仅执行从白名单域获得的脚本文件,而忽略所有其他脚本(包括内联脚本和HTML事件处理属性)。
作为一种最终的保护形式,从未允许执行脚本的站点可以选择完全禁止执行脚本。
除了限制可以加载内容的域外,服务器还可以指定允许哪些协议;例如(从理想的安全角度来看),服务器可以指定必须通过HTTPS加载所有内容。完整的数据安全传输策略不仅强制使用HTTPS进行数据传输,而且还使用安全标记标记所有cookie,使用安全标记标记cookie,并提供自动重定向以使HTTP页面指向HTTPS版本。 网站您也可以使用Strict-Transport-Security HTTP标头来确保连接到该标头的浏览器仅使用加密通道。
配置内容安全策略涉及将Content-Security-Policy HTTP标头添加到页面并配置相应的值以控制用户代理(浏览器等)可以为页面获取哪些资源。例如,可以上传文件并显示图片的页面应允许图片来自任何地方,但将表单的action属性限制为仅分配指定的端点。正确设计的内容安全策略应能够有效地保护页面免受跨站点脚本攻击。本文介绍了如何正确构造这样的头部,并提供了一些示例。
您可以使用Content-Security-Policy HTTP标头指定您的策略,如下所示:
Content-Security-Policy: policy
policy参数是一个字符串,其中收录描述您的CSP策略的各种说明。
策略由一系列策略指令组成,每个策略指令都描述针对特定类型的资源和有效范围的策略。您的策略应包括default-src策略指令,当其他资源类型不符合您的策略时将应用该指令(完整列表请参见default-src)。一个策略可以包括default-src或script-src(en-US)指令,以防止运行内联脚本并消除对eval()的使用。策略还可以收录default-src或style-src(en-US)指令,以限制元素或样式属性中的内联样式。
本节提供了一些常用安全策略解决方案的示例。
网站管理员希望所有内容来自该网站的同一来源(不包括其子域)
Content-Security-Policy: default-src 'self'
网站管理员允许内容来自受信任的域名及其子域(域名不必与CSP设置的域名相同)
Content-Security-Policy: default-src 'self' *.trusted.com
网站管理员允许Web应用程序用户在其自己的内容中包括来自任何来源的图片,但将音频或视频限制为(从)受信任的资源提供者获取,并且所有脚本都必须来自特定的主机服务器。
Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com
这里,默认情况下,仅允许从文档所在的源中获取各种内容,但是有以下例外情况:
在线银行网站的管理员希望确保通过SSL获得网站的所有内容,以防止攻击者*敏*感*词*用户的请求。
Content-Security-Policy: default-src https://onlinebanking.jumbobank.com