XSS漏洞原理整理
一、通常使用XSS脚本来获取浏览器版本信息,alert(navigator.userAgnet ) ,浏览器的UserAgent是可以伪造的,比方火狐或者很多扩展都可以屏蔽或者自定义浏览器发送的UserAgent ,所以通过javaScript获取的浏览器对象有时候不一定时真的。但是浏览器之间的实现存在很大的差异,不同的浏览器之间会实现不同的功能,不同版本之间也会有差异,可以根据这个差别来区分浏览器的信息,比单方面读取 userAgent信息更加的准确。
if (window.ActiveXObject){
//判断是否是IE 7以上的版本
if (document.documentElement && typeof documet.document.documentElement.style.maxHeight!="undefinde"{
//判断是否是IE 8+
if(type document.adoptNode!="underfined"){//Safari3 &Opera & Chrome & Ie8}
}
}return "msie";
else if(type windows.opera!="underfined"){
//Opera
return "OPera";
}
else if (type window.netsapce!=")
................后面的部分这里不写了
什么是HttpOnly ,HttpOnly最初是由微软提出的,并开始在IE6中使用,现在已经在各大浏览器中成为一个标准, 浏览器将禁止页面的JavaScript 访问带有HttpOnly属性的Cookie值。一个cookie的使用过程大致如下:
第一步: 浏览器向服务器发起请求,这个时候没有产生Cookie值
第二步:服务器返回时发送Set-Cookie ,并向客户端浏览器写入Cookie
第三步:周该Cookie到期之前,浏览器访问该域下的所有页面,都将发送该Cookie。*
而HttpOnly设置在 Set-cookie标记。 我们可以同时设置多个Cookie值,对不同的Cookie。
Set-cookie:<name>=<value>[;<Max-Age>=<age>]
[;expirse=<data>][;domain=<domain_name>]
[;path=<some_path>][;secure][;HttpOnly]
是不是加了 HttpOnly就读不出Cookie了不是这样的,我们还是可以通过其他的方法来,只要能力强,什么都可绕。安全是一个不断进阶的过程。添加了 HttpOnly不意味着完全可以避免XSS
二、 在防范XSS或者常见的SQl Injection漏洞的时候使用输入检查或者输出检查。
输入检查的逻辑必须放在服务器端中实现,如果单单在客户端使用JS进行输入检查很容易被绕过,在开发过程中同时在客户端和服务端使用输入检查,客户端进行输入检查可以阻挡大部分的误操作,减少服务器的压力。
XSS的本质是I一种“HTML注入” 用户的数据被当成了HTML代码一部分来执行,从而混淆了原本的语义,产生了一种新的语义。
三、跨站请求伪造 (CSRF) Cross Site Request Forgery
浏览器的Cookie分成两种类型。
第一种 : Session Cookie 称为临时的Cookie ,保存在浏览器进程的内存空间。
第二种: third-Part-cookie 又称为本地Cookie ,保存在本地。
这两种Cookie的区别是 Session Cookie么有指定Expire时间,浏览器关闭之后Session Cookie会自动失效。 Third-Part-Cookie是服务器在Set-Cookie的时候指定了Expire时间,只有当Expire时间过期后Cookie才会失效。
XSS漏洞原理整理的更多相关文章
- 基于dom的xss漏洞原理
原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识.其实对于XS ...
- XSS 漏洞原理及防御方法
XSS跨站脚本攻击:两种情况.一种通过外部输入然后直接在浏览器端触发,即反射型XSS:还有一种则是先把利用代码保存在数据库或文件中,当web程序读取利用代码并输出在页面上时触发漏洞,即存储型XSS.D ...
- Xss漏洞原理分析及简单的讲解
感觉百度百科 针对XSS的讲解,挺不错的,转载一下~ XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...
- XSS漏洞原理
注入型漏洞的本质都是服务端分不清用户输入的内容是数据还是指令代码,从而造成用户输入恶意代码传到服务端执行. 00x01js执行 Js是浏览器执行的前端语言,用户在存在xss漏洞的站点url后者能输入数 ...
- 快速找出网站中可能存在的XSS漏洞实践
笔者写了一些XSS漏洞的挖掘过程记录下来,方便自己也方便他人. 一.背景 在本篇文章当中会一permeate生态测试系统为例,笔者此前写过一篇文章当中笔者已经讲解如何安装permeate渗透测试系统, ...
- 快速找出网站中可能存在的XSS漏洞实践(一)
一.背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录 ...
- Atitit. Xss 漏洞的原理and应用xss木马
Atitit. Xss 漏洞的原理and应用xss木马 1. XSS漏洞1 2. XSS的用途2 2.1. 盗取cookie2 2.2. 刷新流量 刷分3 2.3. DOS 窃取隐私”.“假冒身份”. ...
- XSS漏洞攻击原理与解决办法
转自:http://www.frostsky.com/2011/10/xss-hack/ 对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的.现在让我们来普 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
- WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案
对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...
随机推荐
- 每日一库:使用Viper处理Go应用程序的配置
在开发Go应用程序时,处理配置是一个常见的需求.配置可能来自于配置文件.环境变量.命令行参数等等.Viper是一个强大的库,可以帮助我们处理这些配置. 什么是Viper? Viper是一个应用程序配置 ...
- Spring框架源码分析
目录 Spring核心思想 Spring源码编译 自定义实现Spring框架IOC与DI Spring源码Ioc核心模块分析 BeanDefinition整体介绍 FactoryBean接口的使用 B ...
- C/C++ 实现切片免杀的思路
今天突然想到了一个好玩的免杀思路,原理就是想办法切断磁盘特征与内存特征,关于沙盒免杀我寻思着,这样可以将不同的的DLL映射到内存,在内存中他们的特征也是被切断的,在注入器上做判断如果是沙盒则不加载,不 ...
- jackson、objectMapper 、JsonAlias、JsonProperty、json。序列化和反序列化研究。
总结: @JsonAlias:序列化出来是一定是真名,反序列化时可以传真名(驼峰)Json也可以传别名(下划线)Json @JsonProperty:序列化出来一定是别名,反序列化时也只能传别名Jso ...
- MySQL中 int(11)和int(10)有没有区别!!
结论:int(11) int(3) int(20) 若不勾选填充0,那么效果统统一样,若勾选了填充0:查询出来的效果 会是这样: int(11) 00000000123 int(3) 123 ...
- ABC 310
E \(dp[i][j]\) 表示前 \(i\) 个里有多少个后缀答案为 \(j\). \(if (c[i] == '0') \{\) \(dp[i][0] = 1;\) \(dp[i][1] = d ...
- 从零开始的微信小程序入门教程(四),理解小程序事件与冒泡机制
壹 ❀ 引 我在之前初识WXML与数据绑定两篇文章中,介绍了小程序静态模板与样式相关概念,以及小程序几种常用数据绑定方式,在知道这些知识后,我们可以写一些不算复杂的小程序页面,并能将一些自定义的数据渲 ...
- Dubbo本地调试方法
方法一:用版本号来区分 比如,开发环境上跑的服务版本是1.0.0,那么为了在本地打断点调试某个服务,可以在本地启动,将version设置为2.0.0 服务提供者 @DubboService(versi ...
- Ubuntu20.04/22.04 ESP32 命令行开发环境配置
ESP32 芯片系列 ESP32分三个系列 ESP32-S ESP32-S3: Xtensa 32位 LX7 双核 240 MHz, 384KB ROM, 512KB SRAM, QFN7x7, 56 ...
- Centos7 和 Centos8 升级内核
从yum安装kernel-ml 对于Centos7 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install htt ...