一、通常使用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漏洞原理整理的更多相关文章

  1. 基于dom的xss漏洞原理

    原文:http://www.anying.org/thread-36-1-1.html转载必须注明原文地址最近看到网络上很多人都在说XSS我就借着暗影这个平台发表下自己对这一块的一些认识.其实对于XS ...

  2. XSS 漏洞原理及防御方法

    XSS跨站脚本攻击:两种情况.一种通过外部输入然后直接在浏览器端触发,即反射型XSS:还有一种则是先把利用代码保存在数据库或文件中,当web程序读取利用代码并输出在页面上时触发漏洞,即存储型XSS.D ...

  3. Xss漏洞原理分析及简单的讲解

    感觉百度百科 针对XSS的讲解,挺不错的,转载一下~   XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XS ...

  4. XSS漏洞原理

    注入型漏洞的本质都是服务端分不清用户输入的内容是数据还是指令代码,从而造成用户输入恶意代码传到服务端执行. 00x01js执行 Js是浏览器执行的前端语言,用户在存在xss漏洞的站点url后者能输入数 ...

  5. 快速找出网站中可能存在的XSS漏洞实践

    笔者写了一些XSS漏洞的挖掘过程记录下来,方便自己也方便他人. 一.背景 在本篇文章当中会一permeate生态测试系统为例,笔者此前写过一篇文章当中笔者已经讲解如何安装permeate渗透测试系统, ...

  6. 快速找出网站中可能存在的XSS漏洞实践(一)

    一.背景 笔者最近在慕课录制了一套XSS跨站漏洞 加强Web安全视频教程,课程当中有讲到XSS的挖掘方式,所以在录制课程之前需要做大量实践案例,最近视频已经录制完成,准备将这些XSS漏洞的挖掘过程记录 ...

  7. Atitit. Xss 漏洞的原理and应用xss木马

    Atitit. Xss 漏洞的原理and应用xss木马 1. XSS漏洞1 2. XSS的用途2 2.1. 盗取cookie2 2.2. 刷新流量 刷分3 2.3. DOS 窃取隐私”.“假冒身份”. ...

  8. XSS漏洞攻击原理与解决办法

    转自:http://www.frostsky.com/2011/10/xss-hack/ 对于的用户输入中出现XSS漏洞的问题,主要是由于开发人员对XSS了解不足,安全的意识不够造成的.现在让我们来普 ...

  9. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  10. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

随机推荐

  1. 从零开始配置vim(21)——会话管理

    很多代码编辑器都有这么一个功能,重新进入编辑器之后能恢复上次打开的所有文件,窗口布局,有的甚至是上次设置的一些配置.那么vim是否也可以实现这样的功能呢?答案是肯定的.使用vim自带的会话管理和 vi ...

  2. TienChin 活动管理-工程创建

    工程模块的创建,与之前创建渠道管理一样的,所以这里就不贴图带着大家一起动手进行了,表结构我已经给到大家了,这里我只贴一下代码生成器的代码部分即可. @Test void generateActivit ...

  3. yum 安装失败解决思路$releasever(curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error")

    问题 公司使用刀片机的系统版本是CentOS 7.9.2009(Core),本人在重新安装虚拟机时,也使用对应的系统版本,在安装软件时,yum无法正常使用,一开始觉得,centos的release版本 ...

  4. el-tree只展示前三个节点数据

    后端也返回了第四等级,但是不想让他展示,可以这样解决只展示前三等级 // 获取room树 getRoomTreeList() { getRoomTree().then((res) => { // ...

  5. Windows批处理文件初始化数据库

    前提是MySQL服务必须启动,Windows添加了MySQL的环境变量. 批处理文件: @ECHO OFF SET dbhost=127.0.0.1 SET dbuser=root SET dbpas ...

  6. 位图|布隆过滤器模拟实现|STL源码剖析系列|手撕STL

    今天博主给大家带来位图和布隆过滤器的模拟实现. 前言 那么这里博主先安利一下一些干货满满的专栏啦! 手撕数据结构https://blog.csdn.net/yu_cblog/category_1149 ...

  7. docker安装oracle数据

    docker安装oracle数据库 1️⃣ 通过docker拉取并启动oracle11g(此版本目前主流),docker换源及安装mysql看Springboot创建项目及测试 - $YX$ - 博客 ...

  8. Windows10系统下JDK1.8的下载安装及环境变量配置

    1. JDK1.8安装 2. 环境变量配置点击此处:官网下载 根据自己的系统 ,下载相应的JDK版本. 1. JDK1.8安装双击下载的安装包(.exe文件),进行安装. 点击"下一步&qu ...

  9. offline 2 online | 重要性采样,把 offline + online 数据化为 on-policy samples

    论文标题:Offline-to-Online Reinforcement Learning via Balanced Replay and Pessimistic Q-Ensemble CoRL 20 ...

  10. 高效发现和解决insert字段长度不够的报错

    早上发现执行的PostgreSQL 存储过程报错,错误如下: 300-value too long for type character varying(100),一看就是表字段的长度太小,从提示看是 ...