开发者社区> 问答> 正文

什么是 CSP?

展开
收起
前端问答 2019-12-23 12:40:20 3609 0
1 条回答
写回答
取消 提交回答
  • 前端问答小助手

    CSP 本质上就是建立白名单,开发者明确告诉浏览器哪些外部资源可以加载和执行。我们只需要配置规则,如何拦截是由浏览器自己实现的。我们可以通过这种方式来尽量减少 XSS 攻击。

    通常可以通过两种方式来开启 CSP:

    1. 设置 HTTP Header 中的 Content-Security-Policy
    2. 设置 meta 标签的方式

    这里以设置 HTTP Header 来举例

    • 只允许加载本站资源
    Content-Security-Policy: default-src ‘self’
    
    
    • 只允许加载 HTTPS 协议图片
    Content-Security-Policy: img-src https://*
    
    
    • 允许加载任何来源框架
    Content-Security-Policy: child-src 'none'
    
    

    当然可以设置的属性远不止这些,你可以通过查阅 文档 的方式来学习,这里就不过多赘述其他的属性了。

    对于这种方式来说,只要开发者配置了正确的规则,那么即使网站存在漏洞,攻击者也不能执行它的攻击代码,并且 CSP 的兼容性也不错。

    image.png

    2019-12-23 12:41:21
    赞同 1 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载