xss里的一些名词, 概念(新手)
xss里的需要知道的一些概念
前段安全那几本书也看了一段时间了,有些东西还是需要记录一下。
- 同源策略
imageSame Origin Policy , SOP。同源策略的含义就是对于不同的页面,如果他们的主机名、协议和端口都相同,那他们就是同一来源。否则不是。
参考链接: https://www.anquanke.com/post/id/86078
- DOM
DOM,即document object model,文档对象模型,是浏览器中的一个基础概念。DOM是在浏览器中操作HTML或XML文档的API,使用脚本语言可以通过DOM提供的对象操作HTML元素。
DOM是为js这样的脚本语言而定义的。DOM规范定义了通过脚本操作实时文档的方法,即浏览器中运行的脚本可以动态读取或修改网页内容的。这样一来,网页可以不经过服务器就更新自己的内容
- 渲染引擎
渲染引擎是浏览器的核心组件,负责不数据转黄为用户在屏幕上看到样式,渲染引擎有很多种。
- WebKit、Blink、Trident Gecko
- WebKit
Webkit是一个开源项目,Safari和Chrome都用过它。
- Trident
Trident是微软开发的渲染引擎,也叫MSHTML。IE使用得Trident是闭源的。微软最新的IE至今还使用Trident作为核心渲染引擎。
- Gecko
Firefox是使用Gecko开源渲染引擎的最主要软件。Gecko是排名第三的渲染引擎。由网景公司开发的一个渲染引擎。
- Presto
Presto是Opera的渲染引擎。但Opera团队在2013放弃自家的presto,迁移到Webkit Chromium(Blink)。
- Blink
2013谷歌宣布从Webkit分支出来,创建了新的Blink渲染引擎。Blink致力于Chrome的多进程架构,降低该浏览器的内部复杂度。
- Geolocation
Geolocation API是为移动和桌面浏览器访问设备地理位置信息而开发的。该API可以通过GPS、蜂窝小区三角测量、ip地理定位和本地WiFi热点取得地理位置信息。
- Web存储
Web存储又称DOM存储,原来是HTML5规范的一部分,现在已经剥离出来。可以把Web存储看成超级Cookie.
web存储有两种存储机制: 一种可以将数据持久保存在本地,另一种只会在会话期间保存数据。具体来说,本地存储负责存储持久数据,用户多次访问都可以存取;会话存储负责存储会话数据,只在创建该数据的标签内有效。
cookie与web存储的一个主要区别是只有js可以创建web存储,http首部不行,而且web存储中的数据也不会随着请求发送给服务器。web存储的数据量也比以往的cookie多得多,但也因浏览器而已。另一个主要区别是本地存储没有所谓的路径限制。
- 跨域资源共享
即CORS(cross-origin resource sharing ),是一个让来源忽略同源策略的规范。在最宽松的配置下,web应用可以通过XMLHttpRequest跨域访问任何资源。服务器通过HTTP首部通知浏览器它是否接受访问。
CORS的一项核心内容就是给Web服务器的HTTP响应首部增加以下字段:
Access-Control-Allow-Origin: *
Access-Control-Alllow-Methods: POST, GET
示例:
image- httponly
禁止任何脚本访问cookie内容
- X-Content-Type-Options
浏览器可以使用各种检测技术判断服务返回了什么类型的内容
- Strict-Transport-Security
指示浏览器必须通过有效的https通道与网站通信
- X-Frame-Options
X-Frame-Options HTTP首部用于阻止浏览器中的页面内嵌框架。浏览器看到这个首部后,应该保证不把接收到的页面显示在一个Iframe里面。
-DOM events
html dom允许javasciprt对html事件做出反应
如 onclick等事件
HTML DOM对象参考手册
HTML DOM事件参考手册
- HTML5
HTML5是HTML的新版本,大幅增强了原有功能,增加了用户体验。自然从安全角度看,也增加了新的攻击面,如新的可用标签等。
- WebSocket
websocket是一种浏览器技术,利用它可以再浏览器与服务器之间打开一条即时响应的全双工信道。
websocket代替了Comet等基于Ajax的服务端推送技术。
- Web Worker
H5新增web worker,web worker之前的js都是单线程执行。而要想并发,开发者就要依赖setTimeout()和setInterval()。
- WebRTC
web real-time commmunication (web实时通信),是HTML5运用js的一个进步。使用webrtc可以实现浏览器之间的互相通信
- HttpOnly cookie标志
httponly是另一个应用给cookie的标志,现代所有浏览器都支持。作用是指示浏览器禁止任何脚本访问cookie内容,可以降低xss盗取cookie的风险。
- Strict-Transport-Security
这HTTP首部指示浏览器必须通过有效的https通道与网站通信。如果是一个不安全的链接,用户不可能接受https错误而继续浏览完网站。
- X-Frame-Options
是一个HTTP首部用于阻止浏览器中的页面内嵌框架。浏览器在看到这个首部后,应该保证不把接受到的页面显示在一个IFrame中。
- 浏览器沙箱
浏览器沙箱属于用户空间程序中最高层次的沙箱,它隔离的是操作系统赋予浏览器的权限和在浏览器中运行的子进程的权限。
要完全拿下浏览器,至少需要两步。第一步找到浏览器功能上的漏洞,第二步就是突破沙箱。
- DOM XSS
纯粹的客户端xss类型,不依赖web应用处理用户输入而产生的漏洞。
参考链接: http://www.webappsec.org/projects/articles/071105.html
通常情况下DOM xss对服务器通常是不可见的。
- 反射型xss
- cookie xss
- 通用型xss
是另一种在浏览器中执行恶意js的方法。在某些情况下,这种方法甚至可以不受sop限制。
- xss病毒
即xss蠕虫,具备自传播功能
- web storage(同上web存储)
HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API: sessionStorage 和 localStorage,二者的差异主要是数据的保存时长及数据的共享方式。
参考文章:
- h5新增标签
参考文章
- jsonp
JSON是一种轻量级的数据传输格式,被广泛应用于当前Web应用中。JSONP用来解决跨域请求问题。
image