HTML知识集锦
常用代码片段
HTML Head标签
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!-- 内容类型声明 --> <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" /> |
嵌入Flash影片
1 2 3 4 5 6 7 8 9 10 11 12 |
<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 属性的格式为:
1 |
策略指令 内容源列表; 策略指令 内容源列表; …… |
策略指令
使用策略指令可以在多种策略范围配置安全策略:
策略指令 | 说明 |
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