CSP 内容安全策略( content security policy )

1,背景

跨域脚本攻击,网络安全漏洞,于是就有了内容安全防护策略,从根本上解决这个问题。

2,启用CSP的方式有两种

    a, 修改meta标签,http-equive

    b, 服务器响应头设置

3,主要的CSP策略有5

   res.writeHead(200, {
'Content-Type': 'text-html', 'Content-Security-Policy': 'default-src http: https:' });

    a, 不允许使用内联脚本或样式 

     'Content-Security-Policy': 'default-src http: https:'


b, 允许加载指定域名下的文件资源
'Content-Security-Policy': 'default-src \'self\''
 'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/'

c, 防止表单提交时访问站点
    <form action="https://baidu.com"> 会跳转到百度页面 <button>click me</button> </form>
 'Content-Security-Policy': 'default-src \'self\' https://cdn.bootcss.com/; form-action \'self\''
 d, default-src设置的是全局,如果我只想限制js的请求,可以将default-src改为script-src

'Content-Security-Policy': 'script-src http: https:'


e, 设置响应报告,浏览器会给服务器 主动发送 report api的请求,返回具体的违背信息。限制的同时一起发送报告

   'Content-Security-Policy': 'script-src \'self\'; report-uri /report'

 d, 仅仅发送报告,不执行CSP策略

Content-Security-Policy-Report-Only



<meta http-equiv="Content-Security-Policy" content="form-action 'self';">

和服务端设置效果相同,但不能发送报告。

CSP详细策略可参考HTML5开发规范 新标签打开。

猜你喜欢

转载自www.cnblogs.com/the-last/p/11437732.html