Content Security Policy(CSP)应用及说明
什么是CSP CSP全称Content Security Policy ,可以直接翻译为内容安全策略,说白了,就是为了页面内容安全而制定的一系列防护策略. 通过CSP所约束的的规责指定可信的内容来源(这里的内容可以指脚本、图片、iframe、fton、style等等可能的远程的资源)。通过CSP协定,让WEB处于一个安全的运行环境中。 有什么用? 我们知道前端有个很著名的”同源策略”,简而言之,就是说一个页面的资源只能从与之同源的服务器获取,而不允许跨域获取.这样可以避免页面被注入恶意代码,影响安全.但是这个策略是个双刃剑,挡住恶意代码的同时也限制了前端的灵活性,那有没有一种方法既可以让我们可以跨域获取资源,又能防止恶意代码呢? 答案是当然有了,这就是csp,通过csp我们可以制定一系列的策略,从而只允许我们页面向我们允许的域名发起跨域请求,而不符合我们策略的恶意攻击则被挡在门外。
指令设置详情见上传comments附件。 参考文档: https://blog.csdn.net/JoeBlackzqq/article/details/89017945?ops_request_misc=&request_id=&biz_id=102&utm_term=content-security-policy.com&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-89017945.142^v19^rank_v32,157^v15^new_3&spm=1018.2226.3001.4187
CSP配置方式:
1.通过响应包头(Response Header)实现: Content-Security-policy: default-src 'self'; script-src 'self' allowed.com; img-src 'self' allowed.com; style-src 'self';
2.通过HTML 元标签实现: <meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src https://*; child-src 'none';">
CSP常见指令:
script-src:这个指令规定了网站中可执行脚本的来源,同时也控制了 XSLT 的来源;
style-src:定义了样式文件的来源;
media-src:规定了富媒体(音视频、视频文本轨格式)资源的来源;
child-src:规定了像 worker 、frame 这种嵌入可使用的链接;
font-src:规定了字体的来源,如果在网页中使用了第三方字体可以使用这个指令;
img-src:规定了网站中的图片的来源;
form-action:规定了网页中的 form 元素 action 的可提交地址;
connect-src:规定了脚本中发起连接的地址,像 XMLHttpRequest 的 send 方法、WebSocket 连接地址、EventSource 等;
frame-src:这个指令规定了 frame 的可使用链接。
在 CSP level 2 中废弃了,文档中叫我们用 child-src 来代替这个指令,但在 level 3 中恢复使用; object-src:规定了一些插件的来源,像 Flash 等; report-uri:这个指令是指定一个 CSP 上报地址,当浏览器检测到有不通过指令时,将通过这个指定地址进行上报。值得注意的是,这个指令不能在 meta 元素中使用,并且在 CSP level3 中这个指令会被废弃,用 report-to 来代替,为了保证这个指令有效,官方推荐 report-uri & report-to 同时使用; worker-src:这个指令是 CSP level3 中加的,规定了 Worker、SharedWorker、serviceWorker 中可用的地址; base-uri:规定了页面 base 标签中的链接; frame-ancestors:规定了当前的页面可以被哪些来源所嵌入。作用于 <frame>, <iframe>, <embed>, <applet>。该指令不能通过 <meta>指定且只对非 HTML 文档类型的资源生效;
Content Security Policy(CSP)应用及说明的更多相关文章
- Content Security Policy (CSP) 介绍
当我不经意间在 Twitter 页面 view source 后,发现了惊喜. <!DOCTYPE html> <html lang="en"> <h ...
- Content Security Policy (CSP)内容安全策略
CSP简介 Content Security Policy(CSP),内容(网页)安全策略,为了缓解潜在的跨站脚本问题(XSS攻击),浏览器的扩展程序系统引入了内容安全策略(CSP)这个概念. CSP ...
- Content Security Policy (CSP)内容安全策略总结
跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编程措施,非常麻烦.很多人提出,能不能根本上解决问题,浏览器自动禁止外部注入恶意脚本?这就是"网页安全政策& ...
- DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass
看到标题,是否有点疑惑 CPS 是什么东东.简单介绍一下就是浏览器的安全策略,如果 标签,或者是服务器中返回 HTTP 头中有 Content-Security-Policy 标签 ,浏览器会根据标签 ...
- Refused to execute inline event handler because it violates the following Content Security Policy directive: "xxx". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...')
/********************************************************************************* * Refused to exec ...
- 网页安全政策"(Content Security Policy,缩写 CSP)
作者:阿里聚安全链接:https://www.zhihu.com/question/21979782/answer/122682029来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载 ...
- Content Security Policy的学习理解
以下内容转载自 http://www.cnblogs.com/alisecurity/p/5924023.html 跨域脚本攻击 XSS 是最常见.危害最大的网页安全漏洞. 为了防止它们,要采取很多编 ...
- Content Security Policy减少劫持
Content Security Policy减少劫持 什么是CSP? CSP是由单词 Content Security Policy 的首单词组成,是HTML5带给我们的一套全新主动防御的体系,旨在 ...
- Content Security Policy 入门教程
阮一峰文章:Content Security Policy 入门教程
- Content Security Policy介绍
Content Security Policy https://content-security-policy.com/ The new Content-Security-Policy HTTP re ...
随机推荐
- 从源码分析 Go 语言使用 cgo 导致的线程增长
TDengine Go 连接器 https://github.com/taosdata/driver-go 使用 cgo 调用 taos.so 中的 API,使用过程中发现线程数不断增长,本文从一个 ...
- 【论文阅读】Learning Deep Features for Discriminative Localization
这个是周博磊16年的文章.文章通过实验证明,即使没有位置标注,CNN仍是可以得到一些位置信息,(文章中的显著性图) CNN提取的feature含有位置信息,尽管我们在训练的时候并没有标记位置信息: 这 ...
- celery笔记六之worker介绍
本文首发于公众号:Hunter后端 原文链接:celery笔记六之worker介绍 前面我们介绍过 celery 的理想的设计方式是几个 worker 处理特定的任务队列的数据,这样可以避免任务在队列 ...
- Cisco show interface 命令详解
Router#show interface f0/2 FastEthernet0/2 is up, line protocol is up Hardware is Lance, address is ...
- 【从0开始编写webserver·基础篇#03】TinyWeb源码阅读,还是得看看靠谱的项目
[前言] 之前通过看书.看视频和博客拼凑了一个webserver,然后有一段时间没有继续整这个项目 现在在去看之前的代码,真的是相当之简陋,而且代码设计得很混乱,我认为没有必要继续在屎堆上修改了,于是 ...
- 分布式多协议接入网关FluxMQ-2.0功能说明
FluxMQ-2.0版本更新内容 前言 FLuxMQ是一款基于java开发,支持无限设备连接的云原生分布式物联网接入平台.FluxMQ基于Netty开发,底层采用Reactor3反应堆模型,具备低延迟 ...
- Federated Learning002
联邦学习笔记--002 2022.11.26周六 今天学习了联邦学习中又一篇很经典的论文--Federated Machine Learning: Concept and Applications(联 ...
- Microsoft edge锁定在任务栏上,被修改主页360的解决方法
今天从桌面下边的任务栏打开Microsoft edge浏览器,突然发现主页被篡改为360导航了(生气!恶龙咆哮ooo 在桌面上是Microsoft edge,固定到任务栏就成为Microsoft ed ...
- ASP.NET 6 使用工作单元操作 MongoDB
大家好,我是Edison. 最近工作中需要用到MongoDB的事务操作,因此参考了一些资料封装了一个小的组件,提供基础的CRUD Repository基类 和 UnitOfWork工作单元模式.今天, ...
- 2023ccpc大学生程序设计竞赛-wh
对于大一的我,只听说线下大型比赛,而第一次参加也必然心情激动,生为大一,由于没有参赛经历,所有不知道参赛技巧,所以三个人像个无头苍蝇一样,跟着榜单做,我作为写码的,其他两名队友负责思路和想法,第一道签 ...