<th id="v9g6b"><track id="v9g6b"></track></th>

  • <em id="v9g6b"><acronym id="v9g6b"></acronym></em>
    <progress id="v9g6b"><pre id="v9g6b"></pre></progress>
    <tbody id="v9g6b"></tbody>
    <button id="v9g6b"><acronym id="v9g6b"></acronym></button>
    <rp id="v9g6b"><ruby id="v9g6b"></ruby></rp>

        <dd id="v9g6b"></dd>

        <em id="v9g6b"></em>

          B/S开发框架|Web框架安全问题及防范规范|之CSRF跨站请求伪造

          Web站点为什么会遭受攻击?是为了恶作剧?损害企业名誉?免费浏览收费内容?盗窃用户隐私信息?获取用户账号谋取私利?总之攻击方式层出不穷,作为B/S开发框架来说,帮助开发者做好解决安全问题也是刻不容缓的,本篇文章来告诉大家怎么禁止CSRF跨站请求伪造。

          适用范围

          Web网站

          攻击原理


          如果B/S开发框架中不做防范,完成一次CSRF跨站请求伪造,受害者必须依次完成两个步骤:

          1.登录受信任网站A,并在本地生成Cookie

          2.在不登出A的情况下,访问危险网站B

          看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:

          1.你不能保证你登录了一个网站后,不再打开一个tab页面并访问另外的网站。

          2.你不能保证你关闭浏览器了后,你本地的Cookie立刻过期,你上次的会话已经结束。(事实上,关闭浏览器不能结束一个会话,但大多数人都会错误的认为关闭浏览器就等于退出登录/结束会话了......

          3.CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的。


          攻击原理图-B/S开发框架


          解决方案

          应用程序处理


          1、验证 HTTP Referer 字段;根据HTTP协议,在HTTP头中有一个字段叫Referer,它记录了该HTTP请求的来源地址。提交请求是来自网站自己的请求,是合法的。如果Referer是其他网站的话,就有可能是CSRF攻击,则拒绝该请求。

          2、在请求地址中添加 token 并验证;CSRF攻击之所以能够成功,是因为攻击者可以伪造用户的请求,该请求中所有的用户验证信息都存在于Cookie中,因此攻击者可以在不知道这些验证信息的情况下直接利用用户自己的Cookie来通过安全验证。鉴于此,系统开发者可以在HTTP请求中以参数的形式加入一个随机产生的token,并在服务器端建立一个拦截器来验证这个token,如果请求中没有token或者token内容不正确,则认为可能是CSRF攻击而拒绝该请求。

          3、云微开发平台在 HTTP 头中自定义属性并验证。自定义属性的方法也是使用token并进行验证,和前一种方法不同的是,这里并不是把token以参数的形式置于HTTP请求之中,而是把它放到HTTP 头中自定义的属性里。通过XMLHttpRequest这个类,可以一次性给所有该类请求加上csrftoken这个HTTP头属性,并把token值放 入其中。这样解决了前一种方法在请求中加入token的不便,同时,通过这个类请求的地址不会被记录到浏览器的地址栏,也不用担心token会通过 Referer泄露到其他网站。

          4、使用ASP.NET环境的Anti CSRF模块-AntiCSRF



          管理处理


          适用于web开发框架ASP.NET环境的Anti CSRF模块-AntiCSRF。

          webconfig配置文件中添加配置


          <configuration>
          	<configSections>
          		<sectionname="csrfSettings"type="Idunno.AntiCsrf.Configuration.CsrfSettings, Idunno.AntiCsrf" />
          	</configSections>
          	<csrfSettingscookieName="__CSRFCOOKIE"formFieldName="__CSRFTOKEN"detectionResult="RaiseException"errorPage="404.aspx" />
          	<system.webServer>
          		<modules>
          			<addname="AntiCSRF"type="Idunno.AntiCsrf.AntiCsrfModule, Idunno.AntiCsrf" />
          		</modules>
          	</system.webServer>
               </configuration>


          物理处理


          Web站点为什么会遭受攻击?是为了恶作剧?损害企业名誉?免费浏览收费内容?盗窃用户隐私信息?获取用户账号谋取私利?总之攻击方式层出不穷,作为B/S开发框架来说,帮助开发者做好解决安全问题也是刻不容缓的,本篇文章来告诉大家怎么禁止CSRF跨站请求伪造。

          标签: B/S开发框架Web安全问题及防范规范标签

          网站&系统开发技术学习交流群:463167176

          本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
          转载请注明:文章转载自:华晨软件-云微开发平台 ? B/S开发框架|Web框架安全问题及防范规范|之CSRF跨站请求伪造
          本文标题:B/S开发框架|Web框架安全问题及防范规范|之CSRF跨站请求伪造
          本文地址:http://www.sajuice.com/OrgTec/Back/0017.html

          相关文章: Web安全问题及防范规范之XSS跨站脚本攻击

          电话
          电话 18718672256

          扫一扫
          二维码
          本港台开奖 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>