By Alex
/ in
<!-- 内容类型声明 -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--样式表-->
<style type="text/css">
<!--
body {
margin: 0;
padding: 0;
}
-->
</style>
<!--外联样式表-->
<link rel="stylesheet" type="text/css" href="style.css" />
<object id="FlashID" width="50" height="50" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param name="movie" value="flash-file.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="flash-file.swf" width="50" height="50">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<!--[if !IE]>-->
</object>
<!--<![endif]-->
内容安全策略(CSP,Content Security Policy)是一个附加的安全层,用于帮助检测和缓解某些类型的攻击,包括跨站脚本(XSS)和数据注入等攻击。
使用标签<meta http-equiv="Content-Security-Policy" content=""> 可以设置内容安全策略,其中content 属性的格式为:
策略指令 内容源列表; 策略指令 内容源列表; ……
使用策略指令可以在多种策略范围配置安全策略:
| 策略指令 | 说明 |
| default-src | 定义了那些没有被更精确指令指定的安全策略,相当于默认值 本表格的后续内容均为精确指令 |
| child-src | 定义嵌套浏览器上下文的安全策略,例如<iframe> 。应当使用该指令代替废弃的 frame-src |
| connect-src | 定义了请求、XMLHttpRequest、WebSocket 、EventSource的安全策略 |
| font-src | 定义了@font-face可以加载的字体的安全来源 |
| img-src | 定义了图片和favicons的安全来源 |
| media-src | 定义了<video> 和<audio> 的安全来源 |
| object-src | 定义了<object> 、<embed> 和<applet> 的安全来源 |
| script-src | 定义了JavaScript脚本的安全来源。默认内联脚本和eval() 是被禁止的。内联脚本包括<script> 元素和javascript: 格式的URL |
| style-src | 定义了样式表的安全来源。默认内联样式表是被禁止的。内联样式表包括<style> 元素和style 属性 |
说明指令允许的源,多个源用空格分开。源可以分为三类:
| 源类型 | 举例 | 说明 |
| URL源 | https://*.gmem.cc | 基于HTTPS协议的gmem.cc所有子域名下全部网址 |
| http://www.gmem.cc | 基于HTTP 协议的gmem.cc的www子域名下全部网址 | |
| 通配符源 | * | 匹配所有源 |
| 特殊源 | 'none' | 代表空集,不匹配任何URL |
| 'self' | 代表与文档同源(同域名、同协议、同端口)的URL | |
| 'unsafe-inline' | 允许内联资源,内联资源包括: <script> 元素、<style> 元素、javascript: 格式的URL、内联的事件处理函数等 | |
| 'unsafe-eval' | 允许使用eval() | |
| data: | 允许使用data:资源,data:资源格式:data:[<mediatype>][;base64],<data> | |
| mediastream: | 允许使用mediastream:资源 | |
| gap: | 仅用于iOS的UIWebView,在JavaScript与Native通信时需要 |
注意,启用unsafe-*可能导致XSS攻击。因为目标资源可能直接/间接的引用不安全内容。
Leave a Reply to chenlx Cancel reply