Content Security Policy (CSP) 内容安全策略总结,及抵御 XSS 攻击

  在浏览网页的过程中,尤其是移动端的网页,经常看到有很多无关的广告,其实大部分广告都是所在的网络劫持了网站响应的内容,并在其中植入了广告代码。为了防止这种情况发生,我们可以使用CSP来快速的阻止这种广告植入。而且可以比较好的防御dom xss。

  CSP使用方式有两种

  1、使用meta标签, 直接在页面添加meta标签

<meta http-equiv="Content-Security-Policy" content="default-src ‘self‘ *.xx.com *.xx.cn ‘unsafe-inline‘ ‘unsafe-eval‘;">

  这种方式最简单,但是也有些缺陷,每个页面都需要添加,而且不能对限制的域名进行上报。

  2、在服务端配置csp

  (1)Apache :

  Add the following to your httpd.conf in your VirtualHost or in an .htaccess file:

  Header set Content-Security-Policy "default-src ‘self‘;"

  (2)Nginx :

  In your server {} block add:

  add_header Content-Security-Policy "default-src ‘self‘;";

  在服务端配置所有的页面都可以不需要改了,而且还支持上报。

  如果meta、响应头里都指定了Content-Security-Policy,则会优先使用响应头里的Content-Security-Policy

  CSP内容匹配的规则:规则名称 规则 规则;规则名称 规则 ...

  比如:

  default-src ‘none‘; script-src ‘self‘; connect-src ‘self‘; img-src ‘self‘; style-src ‘self‘;

  default-src ‘self‘ *.xx.com *.xx.cn aa.com ‘unsafe-inline‘ ‘unsafe-eval‘

  (*.xx.com 支持多级域名, 可以不填写http协议)

  规则解释:

  default-src   所有资源的默认策略

  script-src     JS的加载策略,会覆盖default-src中的策略,比如写了default-src xx.com;script-src x.com xx.com;   必须同时加上xx.com,因为script-src会当作一个整体覆盖整个默认的default-src规则。

  ‘unsafe-inline‘  允许执行内联的JS代码,默认为不允许,如果有内联的代码必须加上这条

  ‘unsafe-eval‘    允许执行eval等

  对自定义的协议 比如 jsxxx://aaa.com   可以写成  jsxxx:

  https协议下自动把http请求转为https可以使用  upgrade-insecure-requests

  详情配置及浏览器兼容性可查看官方文档:https://content-security-policy.com/

原文地址:https://www.cnblogs.com/goloving/p/11186176.html

时间: 2024-07-30 02:09:34

Content Security Policy (CSP) 内容安全策略总结,及抵御 XSS 攻击的相关文章

DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass

看到标题,是否有点疑惑 CPS 是什么东东.简单介绍一下就是浏览器的安全策略,如果 标签,或者是服务器中返回 HTTP 头中有 Content-Security-Policy 标签 ,浏览器会根据标签里面的内容,判断哪些资源可以加载或执行.阮一峰老师也有关于CSP 的文章,大家可以看看 看回 DVWA.DVWA 中需求也是很简单的,输入被信任的资源,就能加载或执行资源了. 初级 初级篇,如果不看源码的话.看检查器(F12),也可以知道一些被信任的网站. 其他的网站,大家应该也比较熟悉.而当中的

XSS终结者:Content Security Policy(CSP)

Content Security Policy(CSP)简介 传统的web安全应该主要是同源策略(same origin policy).A网站的代码不能访问B网站的数据,每个域都和其他的域相互隔离,给开发者营造了一个安全沙箱.理论上这是非常聪明的做法,但是实际执行过程中,攻击者使用了各种高招可以推翻这套保护. XSS攻击者把恶意代码注入在网站常规数据里,这样就可以绕过浏览器的同源策略.浏览器相信来自安全域的所有代码.XSS Cheat Sheet是一个古老但是却很有代表性的攻击方式.一旦攻击者

Content Security Policy(CSP)简介(转)

Content Security Policy(CSP)简介 传统的web安全应该主要是同源策略(same origin policy).A网站的代码不能访问B网站的数据,每个域都和其他的域相互隔离,给开发者营造了一个安全沙箱.理论上这是非常聪明的做法,但是实际执行过程中,攻击者使用了各种高招可以推翻这套保护. XSS攻击者把恶意代码注入在网站常规数据里,这样就可以绕过浏览器的同源策略.浏览器相信来自安全域的所有代码. XSS Cheat Sheet 是一个古老但是却很有代表性的攻击方式.一旦攻

Content Security Policy介绍

Content Security Policy https://content-security-policy.com/ The new Content-Security-Policy HTTP response header helps you reduce XSS risks on modern browsers by declaring what dynamic resources are allowed to load via a HTTP Header. 现代浏览器提供的防止XSS攻击

Web 安全之内容安全策略(Content-Security-Policy,CSP)详解

1.CSP 简介 内容安全策略(Content Security Policy,简称CSP)是一种以可信白名单作机制,来限制网站是否可以包含某些来源内容,缓解广泛的内容注入漏洞,比如 XSS. 简单来说,就是我们能够规定,我们的网站只接受我们指定的请求资源.默认配置下不允许执行内联代码(<script>块内容,内联事件,内联样式),以及禁止执行eval() , newFunction() , setTimeout([string], -) 和setInterval([string], -) .

开启CSP网页安全政策防止XSS攻击

 一.简介 CSP是网页安全政策(Content Security Policy)的缩写.是一种由开发者定义的安全性政策申明,通过CSP所约束的责任指定可信的内容来源,(内容可以是指脚本.图片.style 等远程资源).通过CSP协定,可以防止XSS攻击,让web处一个安全运行的环境中. CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单.它的实现和执行全部由浏览器完成,开发者只需提供配置.CSP 大大增强了网页的安全性.攻击者即使发现了漏洞,也没法

内容安全策略(CSP)_防御_XSS_攻击的好助手

原文链接 摘要: 什么是 CSP? 其核心思想十分简单:网站通过发送一个 CSP 头部,来告诉浏览器什么是被授权执行的与什么是需要被禁止的. 这里有一个 PHP 的例子: <?php header("Content-Security-Policy: <your directives>"); ?> 一些指令 你可以定义一些全局规则或者定义一些涉及某一类资源的规则: default-src 'self' ; # self = 同端口,同域名,同协议 => 允许

iOS9 出现 the resource could not be loaded because the app transport security policy requires the use of a secure connection 解决办法

今天更新了Xcode 7 正式版,App编译出现很多警告,在App运行的时候出现如下的提示......... the resource could not be loaded because the app transport security policy requires the use of a secure connection 资源不能被加载,因为该应用程序传输的安全策略要求使用安全连接 iOS9引入了新特性App Transport Security (ATS).详情:App Tra

Method and system for providing security policy for linux-based security operating system

A system for providing security policy for a Linux-based security operating system, which includes a template policy module configured to set an authority using policy information of a downloaded application so that the template policy module can set