ROUND-02 客户端脚本安全
- 简单结构图
一、浏览器安全
-
同源策略,限制来自不同源的document或脚本,对于当前 document读取或设置某些属性
-
影响源的因素有:host/IP,子域名、端口、协议
-
浏览器中
<script><iframe> <img> <link>
- 都能够通过GET请求,跨域加载不同源的资源,不同于XMLHTTP request 浏览器会限制Js的权限,返回的内容无法读写
- JS无法改变请求头内容,因为通过头信息传递token信息认为是可行的
- 会受到浏览器同源策略影响的DOM COOKIE XMLHTTPREQUEST FLASH JAVA APPLET SILVERLIGHT GOOGLE GEARS
- flash 9 的防止跨域安全操作
- IE8的css漏洞
- 浏览器安全策略是浏览器安全的基础,同源策略对于客户端脚本攻击有着重要意义,如果被绕过,安全将荡然无存
二、浏览器沙箱
- 挂马:通过浏览器漏洞,在网站植入恶意代码的攻击方式
2.1 防御策略
- 密切结合操作系统的保护机制,开发多进程架构提高安全性
- google chrome 是第一个采取多进程架构的浏览器
- Chrome的主要进程有:浏览器进程、渲染进程、插件进程、扩展进程 - sanbox IPCChannel 会将用户JS代码 与操作系统和浏览器内核隔离,通过多层安全检查和API的方式进行调用
- 即使拥有多进程架构和sandbox的加持,但是一些第三方插件也是不受沙箱管束,因为插件的漏洞或崩溃依旧会导致整个浏览器出现问题
三、恶意网址拦截
- 除了挂马,这种通过插入恶意代码加载的方式会破坏浏览器安全,还存在一些恶意网站,浏览器通常通过黑名单的方式弹出警告,或拒绝跳转
3.1恶意网址分为两类
- 一类是挂马网站,依旧通过通过插件或者代码漏洞,植入恶意代码,获取操作系统权限,执行可执行脚本
- 一类是钓鱼网站,模仿知名网站的相似页面来欺骗用户
3.2 浏览器如何解决
- 推送恶意网址黑名单 浏览器接收到后,会对用户访问进行黑名单拦截。大多采用方案一
- 在用户端建立模型,一些大公司会做一些安全识别,用以提供黑名单
- 支持ev ssl 证书,变为绿色,教育用户识别浏览器地址栏中的绿色表现
- 有一些公开恶意网站的公益组织
- 也有Google这种,提供api供查询恶意网址库的
- xss filter 是在IE8 率先推出 跨站脚本攻击 ,用于对抗反射型xss
- firefox 4 推出 content security policy, 由服务器返回一个http 头来表明应该遵守什么安全策略
- xss无法控制http 头,所以具有安全性
- csp的理念是优秀的,但是在目前多页面的网站技术下,这种每个页面都进行安全设置的举措维护成本非常巨大,也就不好推广
- 新的功能往往会带来很多新的挑战
Featured Tags
工具类
XML
JAVA
Java
Mybatis
反射
代理模式
日志
工厂方法模式
装饰器模式
结果集映射
Web
RESTful
WebAPI规范
SQL
Redis
Jira
SynapseRT
有限状态机 State Machine
statemachine
SpringBoot
IDEA
Tomcat
Vue
Docker
Springboot
Apache Ignite
项目发布与调试
白帽子讲web安全
黑名单
通用化
企业中台实践
MacOS
docker
minio
springboot
分布式存储
Postgres
数据备份
数据恢复
K8S
抖音小程序
开发实践
SpringCloud
Skywalking
Nacos
Kubernetes
Secret
ConfigMap
Git
GitOps
云原生
RocketMQ
ActiveMQ-Artemis
ClickHouse
Kamailio
sipp
Homer
heplify
heplify-server
HEP