客户端脚本安全—浏览器安全

文章目录

  • 客户端脚本安全—浏览器安全
  • 前言
  • 浏览器安全功能
    • 一、同源策略(Same Origin Policy)
      • 介绍
      • 什么是同源策略?
      • 什么是源?
      • 影响源的因素
      • 同源策略作用
      • 同源策略情况分类
      • 以下三个标签允许跨域加载资源
    • 二、浏览器沙箱
      • 什么是沙箱?
      • 浏览器需要面对的主要威胁
      • 设计目的
    • 三、恶意网址拦截
      • 拦截方案
      • 恶意网站拦截原理
    • 四、浏览器的高速发展
  • 总结

前言

浏览器才是互联网最大的入口

浏览器天生就是一个客户端

浏览器安全功能

一、同源策略(Same Origin Policy)

介绍

同源策略是一种约定,他是浏览器最核心也是最基本的安全功能。

浏览器的同源策略是浏览器安全的基础

Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

什么是同源策略?

所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源。

由上表可知,影响“源”的因素有:host(域名或IP地址,如果是IP地址则看做一个根域名)、子域名、端口、协议

什么是源?

源(origin)就是协议、域名和端口号。若地址里面的协议、域名和端口号均相同则属于同源。
以下是相对于 http://www.a.com/test/index.html 的同源检测

[1] http://www.a.com/dir/page.html ----成功,port默认是80
[2] http://www.child.a.com/test/index.html ----失败,域名不同
[3] https://www.a.com/test/index.html ----失败,协议不同
[4] http://www.a.com:8080/test/index.html ----失败,端口号不同
[5] http://www.domain.com/a.js http://192.168.4.12/b.js 虽然域名指向的ip和ip相同,也不是同源,因为域名不同。

影响源的因素

浏览器中

这些带“src”属性的标签每次加载时,实际上是由浏览器发起了一次GET请求。

同源策略作用

浏览器默认两个相同的源之间是可以相互访问资源和操作 DOM 的。两个不同的源之间若想要相互访问资源或者操作DOM,那么会有⼀套基础的安全策略的制约,我们把这称为 同源策略它的存在可以保护用户隐私信息,防止身份伪造等(读取Cookie)。

浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。

同源策略情况分类

  • DOM 同源策略:禁止对不同源页面 DOM 进行操作。这里主要场景是 iframe 跨域的情况,不同域名的 iframe 是限制互相访问的。
  • XMLHttpRequest 同源策略:禁止使用 XHR 对象向不同源的服务器地址发起 HTTP 请求。

以下三个标签允许跨域加载资源

<img src=''>
<link href=''>
<script src=''>

跨域访问方案的安全基础就是信任"JavaScript无法控制HTTP头"如果此信任基础被打破,则此方案也将不再安全。

XMLHttpRequest跨域访问标准需要通过目标域返回的HTTP头来授权是否允许跨,HTTP头对于Javascript来说是无法控制的

二、浏览器沙箱

什么是沙箱?

沙箱是一种隔离对象/线程/进程的机制,控制浏览器访问系统资源的权限,从而达到保护用户的系统不被网页上的恶意软件侵入、保护用户系统的输入事件(键盘/鼠标)不被监视、保护用户系统中的文件不被偷取等目的。

Sandbox 即沙箱,如今已泛指“资源隔离类模块”的代名词

浏览器需要面对的主要威胁

挂马:

在网页中插入<script>,<iframe>一段恶意代码,利用浏览器漏洞执行任意代码的攻击方式

设计目的

为了让不可信的代码运行在一定的环境中,限制不可信任的代码访问隔离区之外的资源。

对于浏览器来说采用Sandbox技术,无疑可以让不受信任的网页代码、JavaScript代码允许在一个受到限制的环境中,从而保护本地桌面系统的安全。

下图为Google Chrome 的Sandbox 架构

Google Chrome 是第一个采取多进程架构的浏览器。

Google Chrome 的主要进程分别为:浏览器进程、渲染进程、插件进程(flash,java,pdf)、扩展进程。

下图为Google Chrome 的架构:

三、恶意网址拦截

拦截方案

目前各个浏览器的拦截恶意网址的功能都是基于“黑名单”的。

恶意网站拦截原理

恶意网址拦截的工作原理很简单,一般都是浏览器周期性地从服务器端获取一份最新的恶意网址黑名单,如果用户上网时访问的网址存在于此黑名单中,浏览器就会弹出一个警告页面

四、浏览器的高速发展

微软 XSS Filter功能,用以对抗放射型XSS,当用户访问的URL中包含了XSS攻击的脚本时,IE就会修改其中的关键字使得攻击无法完成,并对用户弹出提示框。

xss攻击在没有第三方插件帮助的情况下,无法控制HTTP头

浏览器加载的插件也是浏览器安全需要考虑的一个问题,插件肯存在漏洞,有些插件本身也可能会有恶意行为。

扩展和插件的权限都高于页面Javascript的权限,比如可以进行一些跨域请求等。

总结

如今安全研究的范围已经涵盖了所有用户使用互联网的方式,浏览器正是其中最为重要的一个部分。

浏览器的安全以同源策略为基础,加深理解同源策略,才能把握浏览器安全的本质。

《白帽子讲Web安全》浏览器安全相关推荐

  1. 白帽子讲web安全之 浏览器安全

    白帽子讲web安全之 浏览器安全 (一些内容属于个人理解,如有错误请不吝指正) 同源策略 概念 所谓同源,一般是指域名.协议.端口相同.一般来说,只有同源的页面可以互相读取彼此的数据,或者改变彼此在浏 ...

  2. 读《白帽子讲Web安全》之客户端脚本安全(一)

    2019独角兽企业重金招聘Python工程师标准>>> [第2章  浏览器安全] 1.同源策略(Same Origin Policy)是一种约定,它是浏览器最核心也最基本的安全功能. ...

  3. 读白帽子讲WEB安全,摘要

    读<白帽子讲WEB安全>摘要 文章目录 我的安全世界观 安全三要素-CIA 如何实施安全评估 白帽子兵法 客户端安全 浏览器安全 同源策略 浏览器沙箱 恶意网址拦截 高速发展的浏览器安全 ...

  4. 白帽子讲WEB安全读书笔记(慢慢更新)

    道哥写的白帽子讲WEB安全的读书笔记 文章目录 2020.3.23 ◆ 前言 ◆ 第一篇 世界观安全 1.1 Web安全简史 >> 1.1.1 中国黑客简史 >> 1.1.2 ...

  5. 在学习web安全的小白看过来,这本《白帽子讲web安全》强烈推荐,必读!(附PDF)

    Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分. 前排提醒:文末有pdf领取 下面来看看几种常见的web漏洞: 1.XSS跨站脚本攻击 ...

  6. 《白帽子讲Web安全》读后感 —— 对道哥的致敬

    <白帽子讲Web安全>读后感 --Deep Blue (一个安全小兵的感受) 这是一篇作业:这是一篇读后感:这是一篇记录安全的感悟:这是一篇对道哥的敬仰:这是我安全启蒙的钥匙...... ...

  7. 《白帽子讲Web安全 -- 纪念版 吴翰清著》读后随笔

    <白帽子讲Web安全 – 纪念版 吴翰清著> 该书大多数内容举例大多数是2010年左右的 相隔11年左右, 但是内容并没有被淘汰, 感觉很适合入门, 因为内容详细且比较基础 当然, 这只是 ...

  8. 初出牛犊的站长读《白帽子讲web安全》有感

    初出牛犊的站长读<白帽子讲web安全>有感 一.前言--一百个读者的心目中有一百个哈姆雷特 前言的作者经历,会是每个初初恋上计算机的学生碰到的事.曾记得当时候,我第一次接触病毒是在初中的科 ...

  9. 学习web安全,强烈推荐这本《白帽子讲web安全》!

    Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分. 下面来看看几种常见的web漏洞: 1.XSS跨站脚本攻击 XSS跨站脚本攻击,通常指 ...

  10. 分享笔记1 之《白帽子讲web安全》

    分享笔记1 之<白帽子讲web安全> 目录 第一篇 世界观安全 第1章 我的安全世界观 2 1.1 web安全简史 2 1.1.1 中国黑客简史 2 1.1.2 黑客技术的发展历程 3 1 ...

最新文章

  1. windows服务程序设置为自动 重启后又变为手动启动_系统小技巧:解决Windows无法正常关机的问题...
  2. 【Android开发】自定义ListView,使用通用适配器,并实现ListView上的每一项和每一项上的按钮等控件同时监听
  3. 集芯片的焊接技巧:从LQFP64说起
  4. 一个实用的显示Visual Studio Code文件绝对路径的扩展应用
  5. uk码对照表_这份中外衣服鞋码尺寸对照表,请收好!
  6. hightcharts 3d 堆积图下钻
  7. Openbox 3.3
  8. 自然语言处理——语言模型(一)
  9. 概率论与数理统计(6):数理统计的基本概念
  10. 南邮CTF-RE-Py交易
  11. 2021年美容师(高级)考试资料及美容师(高级)考试技巧
  12. css、HTML制作小米商城网页(二)
  13. 关于光速不变与相对论的理解
  14. Pytorch函数keepdim=True
  15. 视频质量分析工具介绍
  16. npm install安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动,npm遇到ssl问题,An unknown git error occu
  17. python把txt导入excel,python如何将txt文件导入Excel?
  18. 【量化交易】如何搭建本地化量化投研软件系统
  19. performSelector多个参数
  20. AI“牵手”BIM,未来建筑业会发生怎样的巨变?

热门文章

  1. 弱监督学习框架 Detectron2/DRN-WSOD-pytorch 在服务器/windows上配置安装及使用
  2. SLAM总结(一)- SLAM原理概述与简介
  3. 命名规则之大驼峰命名法和小驼峰命名法
  4. pvar模型(Pvar模型去除时间效应和固定效应)
  5. [数学]三角函数与双曲函数及其导数和不定积分
  6. 【通信】基于OFDMA系统的多用户资源分配求解论附文和MATLAB代码
  7. 打开viewer.jnlp文件
  8. 超分辨论文阅读笔记:Non-local
  9. web Security 入门篇
  10. c++如何生成release版本