📅  最后修改于: 2023-12-03 15:00:04.286000             🧑  作者: Mango
CSP(Content Security Policy,内容安全策略)是一种可以有效防止跨站脚本攻击(XSS)的一种安全策略。它的基本思想是通过在服务器端设置HTTP头部信息中的Content-Security-Policy来限制客户端浏览器加载指定域名下的资源,从而防止恶意脚本的注入。
CSP通过在HTTP响应头部添加Content-Security-Policy来明确指定浏览器仅允许加载指定域名下的脚本、样式和图片等内容。这个策略用nonce
、hash
和domain
等方式限制了获取外部资源的方式,从而有效防止了攻击者通过注入恶意脚本来获取敏感数据、篡改网页等危害。
CSP策略通过在服务器返回的HTTP响应头中设置Content-Security-Policy告诉浏览器如何加载资源。例如,以下是一个返回带有CSP头部信息的HTTP响应:
Content-Security-Policy: default-src 'self'; img-src *; media-src media.example.com; script-src userscripts.example.com; style-src styles.example.com;
这个CSP的策略可以被解释为:
default-src ‘self’
: 允许加载同源页面。如果没有其他指令覆盖它,将会尝试从同源加载任何资源。img-src *
: 允许从任何位置加载图片。media-src media.example.com
: 允许从media.example.com加载媒体资源,如音频或视频。script-src userscripts.example.com
: 允许从userscripts.example.com加载JavaScript。style-src styles.example.com
: 允许从styles.example.com加载CSS。你可以在页面中使用<meta>
标签来指定CSP策略,例如:
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'unsafe-inline'; style-src 'unsafe-inline';">
然后打开浏览器的开发者工具,查看Console面板是否有警告信息来检查CSP是否已生效。
使用CSP可以有效防止跨站脚本攻击,并提高网站的安全性。在实际使用过程中需要根据网站的具体情况来设置CSP策略,遵守最少权限原则。同时,在开发和测试阶段需要使用appropriate工具和测试来检查CSP是否生效。