首页 > 技术 >Web安全之Content Security Policy(CSP 内容安全策略)详解

Web安全之Content Security Policy(CSP 内容安全策略)详解

  • 2024-01-31 14:57:32
  • 3639

什么是Content Security Policy(CSP)

Content Security Policy是一种网页安全策略,现代浏览器使用它来增强网页的安全性。可以通过Content Security Policy来限制哪些资源

(如JavaScript、CSS、图像等)可以被加载,从哪些url加载。

CSP本质上是白名单机制,开发者明确告诉浏览器哪些外部资源可以加载和执行,可以从哪些ur加载资源。

CSP最初被设计用来减少跨站点脚本攻击(XSS),该规范的后续版本还可以防止其他形式的攻击,如点击劫持。

启用CSP的两种方法

启用CSP的方法有两种,第一种是通过设置一个HTTP响应头(HTTP response header)“Content-Security-Policy",第二种是通过

HTML标签<meta>设置,例如:


<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'">


除了Content-Security-Policy外,还有一个Content-Security-Policy-Report-Only字段,表示不执行限制选项,只是记录违反限制的行为,

必须与report-uri值选项配合使用,例如:


Content-Security-Policy-Report-Only: default-src 'self'; report-uri /some-report-uri;


CSP指令介绍

Content-Security-Policy值由一个或多个指令组成,多个指令用分号分隔。

csp资源加载项限制指令如下:

1 script-src:外部脚本

2 style-src:样式文件

3 img-src:图片文件

4 media-src:媒体文件(音频和视频)

5 font-src:字体文件

6 object-src:插件(比如 Flash)

7 child-src:框架

8 frame-ancestors:嵌入的外部资源(比如<frame>、 <iframe>、<embed>和<applet>)

9 connect-src: HTTP 连接(通过 XHR、 WebSockets、 EventSource等)

10 worker-src: worker脚本

11 manifest-src: manifest文件

12 default-src:用来设置上面各个选项的默认值。


上述指令对应的值如下:


CSPURL限制指令如下:

1 frame-ancestors:限制嵌入框架的网页
2 base-uri:限制<base#href>
3 form-action:限<form#action>

未经允许不得转载,或转载时需注明出处:茄番番 » Web安全之Content Security Policy(CSP 内容安全策略)详解
标签:
关注我们
  • 咨询

  • 公众号