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

浏览器安全以同源策略为基础,理解同源策略才能把握客户端安全本质

web是建立在同源策略之上的,浏览器只是针对同源策略的一种实现

同源策略

  浏览器的同源策略,限制了来自不同源的“document”和脚本

  判断资源是否同源,以下情况认为同源、非同源:

URL outcome reason
http://store.company.com/dir/a.html 同源  
http://store.company.com/dir/b.html 同源  
http://store.company.com:8080/dir/a.html 端口号
https://store.company.com/dir/a.html 协议
http://news.company.com/dir/a.html 域名(ip)

  影响“源”的因素:host(域名、IP),端口,协议

  特别注意:

  在a.com中执行如下代码

<script src="http://b.com/b.js"></script>

  试问,b.js的源是谁?答案是a.com

  虽然从b.com中加载了b.js,但是b.js是在a.com中运行的,因此对当前打开的界面(a.com),b.js的源是a.com

带src属性的标签的同源策略

  <script>、<img>、<iframe>、<link>等标签带有src属性,可以跨域加载资源,不受同源策略限制

  这些标签加载时,实际上是浏览器发起了一个GET请求

  不同于XMLHttpRequest,通过src加载资源的标签,浏览器限制了JavaScript的权限,使其不能读、写返回的内容

  比如,通过CDN加载jQuery,就无法读写其返回的内容

XMLHttpRequest对象的同源策略

  XMLHttpRequest对象不能跨域访问资源,因此在ajax开发中要注意跨域问题

  但是近年W3C制定了XMLHttpRequest对象跨域访问的标准:

    通过目标域返回的HTTP头来授权是否允许跨域访问【这个跨域访问方案的基础是:JavaScript无法控制HTTP头】

    

浏览器沙箱模型(SandBox)

  “挂马” :在网页中插入一段恶意代码,利用浏览器漏洞执行代码的攻击方式

  Chrome是第一个采取多进程架构的浏览器(不是多线程,是多进程);多进程架构讲浏览器各个功能模块分开,各个浏览器实例分开,当一个进程崩溃时,不会影响到其他的进程

  Chrome主要进程分为:浏览器进程,渲染进程,插件进程,扩展进程。插件进程如:flash,java,pdf等与浏览器进程严格隔离

  SandBox 即沙箱,SandBox泛指“资源隔离模块”

恶意网址拦截

  工作原理:浏览器周期性的从服务器端获取一份最新的恶意网址的黑名单,如果用户上网的网址在此名单中,浏览器给出警告

  恶意网站分类:

  • 挂马网站 ,网页中包含的恶意脚本对用户进行攻击
  • 钓鱼网站, 模仿知名网站界面

  PhishTank 是免费提供恶意网址黑名单的组织,名单由各地志愿者提供,更新频繁

时间: 2024-09-26 18:51:16

客户端脚本安全---浏览器安全的相关文章

客户端脚本语言javascript

2015.11.27  客户端脚本语言javascript. (叫这个名字的原因.想要攀高枝,希望变得和他一样通用.关于名字之间的关系类似于雷锋和雷峰塔,巴基斯坦和卡巴斯基,苏格拉底跟格拉苏蒂的关系一样.阿迪王 和阿迪达斯)康师傅和康帅博 也是javaweb中的一个环节,javascript现在做的也很强大.主要应用于b/s部分的b也就是浏览器客户端的部分. 1.javascript语言,在运行的时候是不需要服务器的,只有浏览器就可以对js代码进行解释. 2.脚本语言:自身无法独立在浏览器端运行

服务器端脚本语言和客户端脚本语言

(一)常见的服务器端脚本语言,php,jsp,asp. 像我们普通浏览网页基于一种BS模式,其实它也只是一种统一于Browser(浏览器)的CS模式.我们的浏览器作为客户端,在点击链接或者输入地址时,向目的主机发送HTML,FTP等等服务请求,然后目的主机根据请求类型,请求内容给予响应.这种万变不离其宗的服务形式普遍存在于所有的网络通信模式中. 服务器脚本很简单,它是应于提交和处理表单,实现动态内容而出现的.想象一下一个中型网站大约有几千个链接地址,你总不能为每一个地址增加一个页面吧.于是服务器

服务器端脚本和客户端脚本

(一)脚本.脚本语言 脚本(Script)是使用一种特定描述性语言.依据一定的格式编写的可执行文件,又称作宏或批处理文件.通俗地讲,其实脚本是由一系列的bind和alias等命令的集合,如同一般的程序,脚本可以将一个值赋给一个变量,可以命令web服务器发送一个值到客户浏览器,还可以将一系列命令定义成一个过程.可以把集合存放在一个独立的文件然后需要的时候执行,方便CS使用.-----好吧,我还是没明白. 脚本语言(Scripting language):一种计算机程序语言,语法和结构以及学习和使用

白帽子讲安全学习笔记(二):客户端脚本安全

第二篇 客户端脚本安全 第2章 浏览器安全 1. 同源策略:域划分 2. 浏览器沙箱:让不可信任的代码运行在沙箱中,以进行隔离: 3. 恶意网址拦截:公共组织提供黑名单:EV数字证书认证安全的网站: 4. 高速发展的浏览器安全 浏览器设置xss攻击原则,遵循的安全策略,但是浏览器为了用户的人性化使用,设置的匹配规则往往会被黑客利用: 第3章 跨站脚本攻击(XSS) 1. XSS简介 XSS指黑客使用HTML注入篡改了页面,插入恶意的脚本,从而使用户使用时, 第一种是反射型XSS 也叫非持续型XS

ASP.NET 网页动态添加客户端脚本

在System.Web.UI.Page类中包含了RegisterStarupScript()和RegisterClientScriptBlock()两个方法,使用这两个方法可以实现向Web页面动态添加脚本块,客户端脚本按运行方式可以分为两类:一类是在加载页面后立即运行,另一类是在发生客户端事件后才运行.前者的常见示例是打开页面时立即弹出一个广告条;后者的常见示例是当用户单击莫按钮时弹出一个消息框.RegisterStartupScript()和RegisterClientScriptBlock(

webControls与客户端脚本路径

网上有用的资料不多,在一本电子书中摘抄了内容如下 webControls配置节只有一个clientScriptsLocation属性,此属性用于指定ASP.NET客户端脚本的默认存放路径.这些文件是包含在HTML代码生成的ASPX页面时这些需要的客户端功能,如智能导航和客户端控件验证. <webControls clientScriptsLocation="/aspnet_client/{0}/{1}/"/> 上述代码就是<webControls>的默认内容.c

客户端脚本攻击

什么是客户端脚本植入攻击 所谓客户端脚本植入攻击,是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,黑客所植入的脚本就会被执行,进而开始攻击. 可以被用做脚本植入攻击的HTML标签包括以下5个方面: (1)以script标签标记的Javascript 和VBScript 等页面脚本程序.在script标签内可以指定Javascript程序代码,也可以在src属性内指定Javascript文件的URL路径.(2)以object标签标记的对象.这些对象通常是Jav

PHP漏洞全解(三)-客户端脚本植入

本文主要介绍针对PHP网站的客户端脚本植入攻击方式.所谓客户端脚本植入攻击,是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,黑客所植入的脚本就会被执行,进而开始攻击. 客户端脚本植入(Script Insertion),是指将可以执行的脚本插入到表单.图片.动画或超链接文字等对象内.当用户打开这些对象后,攻击者所植入的脚本就会被执行,进而开始攻击. 可以被用作脚本植入的HTML标签一般包括以下几种: 1.<script>标签标记的javascript和vb

脚本的浏览器兼容性问题

1.window对象不要去掉 window.parent.location 2.firefox和ie内置的对象确实不一样,你用jquery吧这个是跨浏览器的,只需要 $("#yourID").parent()就直接可以得到了 很方便,而且jquery也比较小,只有几十k,现在浏览器这么多 不可能不用跨浏览器解决方案的. 楼主不是通过http协议访问的吧,通过file协议webkit核心(chrome和360极速模式)parent,opener不能互访,会报错 以下以 IE 代替 Int