csp常见库函数及其用法
时间: 2024-09-07 21:03:35 浏览: 81
CSP(Content Security Policy)是一种用于减少网页中跨站脚本(XSS)和数据注入攻击的计算机安全标准。它通过指定哪些资源可以被网页加载的方式来减少攻击面。以下是一些常见的CSP库函数及其用法:
1. `setHeader`(通常在Node.js中使用):
这个函数用于设置HTTP响应头。例如,你可以使用它来设置内容安全策略(CSP):
```javascript
res.setHeader('Content-Security-Policy', "default-src 'self';");
```
这个例子中,`'self'`表示只允许加载当前域名下的资源。
2. `response.set("Content-Security-Policy", ...)`
在使用Express.js框架的Node.js应用中,可以使用`response.set`方法来设置响应头:
```javascript
response.set('Content-Security-Policy', "img-src https://*; child-src 'none';");
```
这个例子设置了一个CSP,其中指定了图像资源只能来自任何HTTP协议的源,而子框架(如iframe)被完全禁用。
3. `meta`标签(用于HTML中):
在HTML中,可以通过添加`<meta>`标签到`<head>`部分来设置内容安全策略:
```html
<meta http-equiv="Content-Security-Policy" content="script-src 'self';">
```
这个例子限制了脚本只能加载自当前页面。
4. `Content-Security-Policy-Report-Only`头:
如果你想要报告CSP违规而不是阻止它们,可以使用`Content-Security-Policy-Report-Only`:
```javascript
res.setHeader('Content-Security-Policy-Report-Only', "default-src 'self'; report-uri /csp-violation-report-endpoint");
```
在这个例子中,任何违反`default-src 'self'`的资源加载将不会被阻止,而是会向`/csp-violation-report-endpoint`发送违规报告。
阅读全文