【每日一题】系统安全之CSP(Content-Security-Policy)
人生苦短,总需要一点仪式感。比如学前端~
CSP
本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。我们可以通过这种方式来尽量减少 xss
攻击。
开启 CSP
通常有两种方式:
HTTP Header
设置 HTTP 首部中的Content-Security-Policy
meta
另一种是设置 meta 标签的方式
<meta http-equiv="Content-Security-Policy">
举例
这里以设置 HTTP Header
来举例子
只允许加载本站资源
Content-Security-Policy:default-src 'self'
只允许加载 HTTPS 协议图片
Content-Security-Policy: img-src https://*
允许加载任何来源的框架
Content-Security-Policy: child-src 'none'
设置的属性还有很多,更多设置属性可以查看 MDN文档
(https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)
对于这种方式来说,只要开发者配置了正确的规则,那么即使网站存在漏洞,攻击者也不能执行它的攻击代码,并且 CSP
的兼容性也不错
让我们一起携手同走前端路!
关注公众号回复【加群】即可
评论