zoukankan      html  css  js  c++  java
  • 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才会失效。

  • 相关阅读:
    Feature部署EventHandler注意事项
    QuickPart Permission问题
    Vista SP1、IIS7,安装ASP.Net 1.1、VS2003、NetAdvantage 2004vol、Sql Server2000全攻略
    MOSS/Sharepoint 2007 创建网站集之后,链接出现“未找到文件”错误提示
    将 MS SQL Server 2005 SP2 整合到安装文件【脚本修正】
    QuickPart功能改进_Sharepoint_MOSS
    部署WebPart的两种方式
    博客园怎么了?
    Apache2.2.8、php5.2.6、mysql5、phpMyAdmin2.11.6在Windows Vista下的安装和配置
    tz2txt的安装与使用
  • 原文地址:https://www.cnblogs.com/xinxianquan/p/13210359.html
Copyright © 2011-2022 走看看