HTTP 的内容安全策略(CSP)

访客5年前黑客资讯510

 本文介绍的是W3C的Content Security Policy,简称CSP。望文生义,这个规范与内容安全有关,首要是用来界说页面能够加载哪些资源,削减XSS的发作。

Chrome扩展现已引进了CSP,经过manifest.json中的content_security_policy字段来界说。一些现代浏览器也支撑经过呼应头来界说CSP。下面咱们首要介绍怎么经过呼应头来运用CSP,Chrome扩展中CSP的运用能够参阅Chrome官方文档。

浏览器兼容性

前期的Chrome是经过X-WebKit-CSP呼应头来支撑CSP的,而firefox和IE则支撑X-Content-Security-Policy,Chrome25和Firefox23开端支撑规范的的Content-Security-Policy,见下表。

呼应头 Chrome Firefox Safari IE Content-Security-Policy 25+ 23+ - - X-Content-Security-Policy - 4.0+ - 10.0(有限的) X-Webkit-CSP 14+ - 6+ -

完好的浏览器CSP支撑状况请移步CanIUse。

怎么运用

要运用CSP,只需要服务端输出相似这样的呼应头就行了:

Content-Security-Policy: default-src 'self'

default-src是CSP指令,多个指令之间用英文分号切割;'self'是指令值,多个指令值用英文空格切割。现在,有这些CSP指令:

指令 指令值示例 阐明 default-src 'self' cnd. *** 界说针对一切类型(js、image、css、web font,ajax恳求,iframe,多媒体等)资源的默许加载战略,某类型资源假如没有独自界说战略,就运用默许的。 script-src 'self' js. *** 界说针对JavaScript的加载战略。 style-src 'self' css. *** 界说针对款式的加载战略。 img-src 'self' img. *** 界说针对图片的加载战略。 connect-src 'self' 针对Ajax、WebSocket等恳求的加载战略。不答应的状况下,浏览器会模仿一个状况为400的呼应。 font-src font. *** 针对Web Font的加载战略。 object-src 'self' 针对<object>、<embed>或<applet>等标签引进的flash等插件的加载战略。 media-src media. *** 针对<audio>或<video>等标签引进的html多媒体的加载战略。 frame-src 'self' 针对frame的加载战略。 sandbox allow-forms 对恳求的资源启用sandbox(相似于iframe的sandbox特点)。 report-uri /report-uri 告知浏览器假如恳求的资源不被战略答应时,往哪个地址提交日志信息。 特别的:假如想让浏览器只报告日志,不阻挠任何内容,能够改用Content-Security-Policy-Report-Only头。

指令值能够由下面这些内容组成:

指令值 指令示例 阐明   img-src 答应任何内容。 'none' img-src 'none' 不答应任何内容。 'self' img-src 'self' 答应来自相同来历的内容(相同的协议、域名和端口)。 data img-src data 答应data:协议(如base64编码的图片)。 www. *** img-src img. *** 答应加载指定域名的资源。 *. *** img-src *. *** 答应加载 *** 任何子域的资源。 https://img.com img-src https://img.com 答应加载img.com的https资源(协议需匹配)。 https: img-src https: 答应加载https资源。 'unsafe-inline' script-src 'unsafe-inline' 答应加载inline资源(例如常见的style特点,onclick,inline js和inline css等等)。 'unsafe-eval' script-src 'unsafe-eval' 答应加载动态js代码,例如eval()。

[1] [2]  黑客接单网

相关文章

某网站缝隙排查经历

 在这儿共享一些之前对某网站会员/用户体系(一般域名都是passport.xx.com)进行缝隙检查查出的一些问题,这些问题大多都是逻辑类缝隙,运用缝隙进行进犯并不需求什么深邃的技能才干,所以损害特别...

MySQL联合注入之绕过安全狗到GetShell

发现网上公开过安全狗的办法少之又少,并且根本都是给个大约点就完毕,本文章是将整个进程记录了一遍,因为一开始我也没想到我能成功的绕过去,大约进程是这样:Mysql根底有必要要有–>定位—>f...

跨站恳求假造CSRF防护办法

 CSRF(Cross-site request forgery跨站恳求假造,也被称成为“one click attack”或许session riding,一般缩写为CSRF或许XSRF,是一种对网...

东西引荐:Raptor WAF,轻量级WEB使用防火墙

  Raptor是一款选用C言语编写的WEB运用防火墙,运用DFA来阻挠SQL注入、Xss目录遍历等进犯。 编译&装置 $ git clone https://github.com/Cool...

再度瞄准工控设备基础设施:针对TRITON歹意活动的详细分析

FireEye近期承认TRITON歹意活动正在针对一个新的要害基础设施建议进犯,咱们现在现已对该歹意行为采取了呼应办法。 2019年12月,FireEye揭露发布了咱们针对TRITON进犯的第一次剖析...

JS变异小技巧:使用JavaScript全局变量绕过XSS过滤器-黑客接单平台

什么是JavaScript大局变量? JavaScript大局变量在函数外部声明或运用window方针声明,它能够经过任何函数拜访。 假定你的方针Web应用程序简单遭到映射到JavaScript字符...