Web安全2.3:CSP安全策略、Cookie、Session、同源策略、HTML DOM树

Web安全2.3:CSP安全策略、Cookie、Session、同源策略、HTML DOM树

一、CSP安全策略:

浏览器是XSS等前端攻击的战场,有些浏览器附带一些安全策略,包含自带的XSS过滤、同源策略等。

W3C组织还针对XSS攻击制定了一个叫做CSP的安全层,也就是内容安全策略(Content Security Policy)。它的出现是为了帮助检测和缓解某些类型的攻击,比如跨站脚本(XSS)和数据注入等攻击,从而引入的浏览器策略。开发者可以根据CSP的规范,去创建一些很严格的规则,比如说白名单策略,管理网站允许加载的内容。当网站加载了非预期的内容,浏览器会及时阻止并且上报,减少出现安全风险时的损失。

1、CSP的部分命令:

CSP有两种指令方式:
(1)HTTPheader:比如在HTTP的响应头中设置Content-Security-Policy的值。
(2)HTML:比如在html里插入meta标签来实现。
如果都设置的话,以HTTP响应头里的为准

2、策略控制:

这里使用PHPstudy搭建一个简易的网站,网站的代码如下:

<meta charset="utf-8">
<?php
//只允许加载本地源图片:
header("Content-Security-Policy:img-src 'self' ");
?>

//允许加载所有源下的图片
<meta http-equiv="Content-Security-Policy" content="img-src*;">

//加载的是一张我随意百度的图片
<img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=464542646,4082158470&fm=27&gp=0.jpg"/>
(1)首先我们先把meta标签注释掉,如下:

在这里插入图片描述
接着我们打开火狐浏览器,然后进行访问:
我们发现底下的红色字迹提示内容的安全政策,表明header生效了,只允许加载本地源图片。
在这里插入图片描述
除此之外,我们在网络模块中,可以看到响应头中的确出现了安全政策。
在这里插入图片描述

(2)我们这次只注释掉header:

在这里插入图片描述
然后我们发现加载出了图片,哈哈。
在这里插入图片描述

(3)两段CSP代码都不注释:

阿哦!我们的图片找不到了,说明HTTP头起作用了。
在这里插入图片描述

3、CSP完整命令:

指令 说明
base-url 文档的基准URL
child-src web workers 以及嵌套的浏览上下文(如<frame><iframe>)的源
connect-src 请求、XMLHttpRequest、WebSocket和EvenSource的连接来源
default-src child-src
connect-src
font-src:控制字体文件来源
img-src:控制图片来源
media-src:控制video和audio标签里的资源来源
object-src:控制<object><embed><applet>标签里资源的来源
script-src:控制JavaScript的有效来源
style-src:控制css的有效来源
plugin-types 控制<object><embed><applet>插件资源的来源
reflected-xss 控制浏览器对于反射型xss的策略
report-url 用于接收浏览器发送违反CSP页面的报告地址
sandbox 控制是否控制阻止弹窗,插件,脚本执行等

二、Cookie安全:

cookie:由于HTTP协议是无状态的,因此要跟踪用户的状态比如登陆信息,就得在每一个HTTP请求中多放一段数据来进行标记。

http规范中已经设计好了一个位置让你存放,就是消息头中的cookie段。而cookie可以由服务端发送指令或者客户端通过JavaScript脚本让浏览器生成并保存

Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的规范是 RFC6265 (可以叫做浏览器缓存)。

这个Cookie一般是有期限的,当攻击者盗取了用户没有失效的Cookie时,就相当于有了用户的用户名和密码。
我们来举两个例子来说明:

1、服务端如何在响应的消息头中告诉浏览器设置一个cookie:

假设一个网站是:https://abc.com/xxx,在访问这个网站时会携带cookie
其中cookie的属性是:path=/xxx、domain=.abc.com、secure

访问以下URL 是否会附带cookie 原因
http://abc.com/xxx 浏览器遵循secure标记,只在https传输该cookie
https://abc.com/xxxx 这个URL的path是/xxxx
https://abc.com/xxx/x 这个path是/xxx/x属于xxxx文件夹中的,他们是包含关系
https://abc.com/xxx 因为一模一样
https://1.abc.com/xxx 1.abc.com是二级域名,dom
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值