| style-src | 控制CSS样式表的加载来源,防止加载恶意样式表。 |
| report-uri | 指定报告异常信息的URI,方便管理员及时发现和处理安全问题。 |
| upgrade-insecure-requests | 要求浏览器将所有HTTP请求升级为HTTPS请求,提高安全性。 |
| sandbox | 对页面中的某些元素进行限制,防止恶意代码对其进行操作。 |
注:以下是一些常见参数及其说明和示例。可以根据具体需求进行配置。
3.2default-src
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许加载同源的资源 | default-src 'self'; |
* |
允许加载任意来源的资源 | default-src '*'; |
none |
不允许加载任何资源,是最严格的设置 | default-src 'none'; |
unsafe-inline |
允许内联脚本和样式,但存在安全风险 | default-src 'unsafe-inline'; |
unsafe-eval |
允许使用eval()函数执行代码,存在安全风险 | default-src 'unsafe-eval'; |
strict-dynamic |
只允许动态生成脚本和样式,不允许内联脚本和样式 | default-src 'strict-dynamic'; |
https: |
只允许加载HTTPS资源 | default-src 'https:'; |
data: |
允许加载data:协议的资源,如文件上传等 | default-src 'data:'; |
以下是一个示例(允许从同一域名加载资源
):
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy "default-src 'self';";
# 其他配置...
}
}
3.3connect-src
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许加载同源的资源 | connect-src 'self'; |
* |
允许加载任意来源的资源 | connect-src '*'; |
none |
不允许加载任何资源,是最严格的设置 | connect-src 'none'; |
report-sample |
要求浏览器报告所有连接请求的样本,用于调试和分析 | connect-src 'report-sample'; |
unsafe-inline |
允许内联脚本和样式,但存在安全风险 | connect-src 'unsafe-inline'; |
unsafe-eval |
允许使用eval()函数执行代码,存在安全风险 | connect-src 'unsafe-eval'; |
strict-dynamic |
只允许动态生成脚本和样式,不允许内联脚本和样式 | connect-src 'strict-dynamic'; |
https: |
只允许加载HTTPS资源 | connect-src 'https:'; |
data: |
允许加载data:协议的资源,如文件上传等 | connect-src 'data:'; |
以下是一个示例(允许从 example.com 的 API 加载资源
):
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy "connect-src 'self' https://api.example.com;";
# 其他配置...
}
}
3.4font-src
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许加载同源的资源 | font-src 'self'; |
* |
允许加载任意来源的资源 | font-src '*'; |
none |
不允许加载任何资源,是最严格的设置 | font-src 'none'; |
data: |
允许加载data:协议的资源,如文件上传等 | font-src 'data:'; |
https: |
只允许加载HTTPS资源 | font-src 'https:'; |
report-sample |
要求浏览器报告所有字体请求的样本,用于调试和分析 | font-src 'report-sample'; |
以下是一个示例(允许从 Google 字体 API 加载字体资源
):
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy "font-src 'self' https://fonts.googleapis.com;";
# 其他配置...
}
}
3.5form-src
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许表单提交到同源的URL | form-action 'self'; |
* |
允许表单提交到任意URL | form-action '*'; |
none |
不允许表单提交,是最严格的设置 | form-action 'none'; |
report-sample |
要求浏览器报告所有表单提交的样本,用于调试和分析 | form-action 'report-sample'; |
以下是一个示例(允许从同一域名加载表单资源
):
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy "form-src 'self' https://example.com/forms;";
# 其他配置...
}
}
3.6frame-ancestors
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许嵌套的frame或iframe加载同源的资源 | frame-ancestors 'self'; |
* |
允许嵌套的frame或iframe加载任意来源的资源 | frame-ancestors '*'; |
none |
不允许嵌套的frame或iframe加载任何资源,是最严格的设置 | frame-ancestors 'none'; |
report-sample |
要求浏览器报告所有嵌套的frame或iframe的来源样本,用于调试和分析 | frame-ancestors 'report-sample'; |
以下是一个示例(禁止任何框架嵌套
):
server {
listen 80;
server_name example.com;
location / {
add_header Content-Security-Policy "frame-ancestors 'none';";
# 其他配置...
}
}
3.7frame-src
指令的参数、说明和示例
参数 | 说明 | 示例 |
---|---|---|
self |
允许嵌套的frame或iframe加载同源的资源 | frame-src 'self'; |
* |
允许嵌套的frame或iframe加载任意来源的资源 | frame-src '*'; |
none |
不允许嵌套的frame或iframe加载任何资源,是最严格的设置 | frame-src 'none'; |
report-sample |
要求浏览器报告所有嵌套的frame或iframe的来源样本,用于调试和分析 | frame-src 'report-sample'; |
https: |
只允许嵌套的frame或iframe加载HTTPS资源 | frame-src 'https:'; |
data: |
允许嵌套的frame或iframe加载data:协议的资源,如文件上传等 | frame-src 'data:'; |