`
a495863099
  • 浏览: 41062 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

试读图书——《Web应用安全威胁与防治》

阅读更多

本书理论知识讲解详细,实际应用操作配图讲解思路清晰,利于读者快速掌握理论知识与操作技巧。在如今多数软件开发或测试工作中,关注点主要在功能及性能上,而安全性考虑不足,通过阅读“试读章节”,了解到全面的安全性理论知识及强大的安全性测试工具,视野开阔不少,也意识以前项目在安全性方面的欠缺,其中不乏存在一些致命性的漏洞,将在后续项目中必须逐步重视起来。

 

第六章主要介绍三款(HP WebInspect、w3af、Ratproxy)测试扫描工具,配图详细讲解了各工具的安装及使用,三款工具详细介绍如下:

 

HP WebInspect一款易用、可扩展、精确的Web应用安全评估软件,可协助安全专家和新手发现Web应用和服务中存在的高风险漏洞,解决了复杂的Web 2.0问题,且能找到传统扫描程序无法发现的漏洞,支持如今最复杂的Web应用技术,由于采用了突破性自动测试技术(包括SCA和同步应用扫描),所以可以迅速、准确地发现Web应用的安全漏洞。

 

w3af主动扫描工具,w3af(Web Application Attack and Audit Framework)是一个Web应用程序攻击和审计框架。可以检测SQL注入、跨站脚本、本地和远程文件包含等漏洞。

 

Ratproxy被动扫描利器,被动扫描也称为半自动扫描。用户在浏览器设置一个代理后,在浏览器里访问服务器时,代理会自动记下用户访问的网址并进行分析,其分析的范围仅限于用户访问过的页面,从而扫描的时间会大大缩短,且更有针对性。就现在被广泛采用的敏捷开发,使用被动扫描可只针对需要测试的功能进行安全审核。

 

       第十章主要讲身份认证和会话管理。在安全领域中,有两个非常重要的概念——Authentication(身份验证)和Authorization(授权)。一般来说,认证方式的强度从弱到强依次为:

1、What you know——你知道什么

最常见的就是用户名/密码,以及一些你知道答案的问题。例如:你小学里的老师名字叫什么、你最喜爱的球星是谁等等。

 

2、What you have——你拥有什么

常见的方式是一些实体硬件,如令牌产生器(一次性密码)、手机等。

 

3、What you are——你是什么

比如指纹扫描、脸谱扫描、视网膜扫描等,利用人基本且唯一的一些生物特征。

 

       使用时,为了增加系统的机密性,建议采用双因子身份验证,即上面3种认证方式中的两种方式的组合。

 

         Web会话:HTTP协议的无状态特性,意味着Web应用并不了解同一用户以前请求的信息。会话就是在服务器端维护每次HTTP请求的状态。这样,一旦一个经过验证的会话建立了,那么Session ID就基本等同于我们上面所说的用户名/密码、一次性令牌等,每个用户的Session ID都应该是唯一的以及不可预测的。

 

       针对会话的攻击方式主要有如下两类:

         1、直接会话攻击方式:会话劫持、会话固定两种方式。

         2、非直接会话攻击方式:以Puzzle Mall应用,网站攻击利器burp suite详细讲述此类攻击方式。

 

       会话ID(SID:由服务器产生并返回给浏览器的请求,并且在浏览器中存储(通常来说是Cookie),它用来标识浏览器与服务器会话的唯一值。通过SID的名字可以基本判定应用服务器和编程语言是什么,如PHPSESSID(PHP)、JSESSIONID(J2EE)、CFID& CFTOKEN(ColdFusion)、ASP.NET_SessionId (ASP.ET)等。为安全性考虑,建议将默认的SID的名字换成大众化的名字,如ID。为了防止暴力破解,SID必须有一定的长度,它的长度至少要128位(16字节)。此外,SID还必须是不可预测的(随机的),来防止预测攻击。

 

       会话固定测试:固定会话漏洞发生在Web 应用程序在不废止现有的会话ID(未经验证)前提下验证一个用户,从而导致应用程序继续使用未验证之前所用到的同一个会话ID。可通过使用Web Scrab分析会话ID判定。

 

       预防固定会话攻击:最基本的建议就是一旦用户登录成功以后,马上invalidate用户的会话。

 

       保护你的会话令牌:

           1.采用强算法生成Session ID;

           2.软硬兼施,会话过期;

 

        通常有3种办法来设定软会话过期,其级别由高到低依次为:Tomcat级别> Web应用级别>Servlet运行时context级别,低级别的设定会覆盖高级别的设定。

           a.Tomcat级别的设定。

<!--30分钟会话过期,在{TOMCAT_HOME}\conf\web.xml中设定-->
<session-config>
<session-timeout>30</session-timeout><!-- set in minutes -->
</session-config>

        

          b.Web应用级别的设定。

<!--15 分钟会话过期,在{TOMCAT_HOME}\webapps\{APP_NAME}\WEB-INF\web.xml中设定-->
<session-config>
<session-timeout>15</session-timeout><!-- set in minutes -->
</session-config>    

         

          c.在程序代码中进行设定。

/*5分钟会话过期,代码中设定*/
httpSession.setMaxInactiveInterval(5*60); // set in seconds

    

        第十二章主要讲跨站请求伪造(CSRF,CSRF(Cross-site Request Forgery),跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。通过常见的场景解说CSRF攻击的详细过程。而家用路由器、POST请求方式也可以成功实现攻击。

 

半自动CSRFTester是一款很好的CSRF的检测工具,通过实例实例详细讲解操作过程。

 

 针对跨站请求伪造的预防方法主要有如下几种:

          1、  在重要的网站进行操作后,及时退出;

          2、  访问重要网站与网上冲浪使用不同的浏览器,避免会话session共享;

          3、  增加确认操作,如删除、新增、修改等做出相应提示;

          4、  重新认证:如针对重要操作,需重新输入密码等;

          5、  加入验证码(CAPTCHA);

 

      本书中详细讲述使用ESAPI解决CSRF的步骤

          

      OWASP CSRF Guard是一个实现了Token模式的Java类库,主要用来防止CSRF攻击。它可以利用J2EE的Filter自动地把Token插入到每个HTML中。任何尝试对没有Token的请求的提交,都被视为CSRF攻击,会被阻止。对于这些被阻止的请求,CSRF Guard可以配置为记日志和把用户导向一个加载页面。

 

      在项目的重要功能中一定要加入Token保护,不要迷信POST比GET更安全,否则一个小窟窿,绝千里之堤。

 

       纵观本书针对Web应用安全方面讲解详细,应该可以算是一本在web开发过程中为提升系统安全性必需的一本书籍。

 

 

分享到:
评论
1 楼 ITman_清水 2013-05-22  
本书讲解的的一些功能还是蛮好 对于web的安全注入很不错 建议大家看看

相关推荐

    ITeye 8月技术图书有奖试读活动——已结束

    第9章详细介绍了作者曾经的冠军作品——跨终端存储方案(Storage),这是一个利用Web技术实现统一数据存储与访问的方案。 第10章完整阐述了如何通过脚本录制和回放技术实现跨终端动作同步。这项技术允许开发者记录...

    ITeye 2月技术图书有奖试读活动——已结束

    根据提供的文件信息,可以提炼出一系列与批判性思维、学习方法、信息评估及沟通技巧相关的知识点。 ### 批判性思维 #### 1. 批判性思维的定义和重要性 批判性思维是一种系统评估自己所见所闻的思维习惯,它要求...

    Web Security / web security / anquan / AppCodeScan / Burp Suite / openvas

    压缩包中的文件名“Web应用安全威胁与防治——基于OWASP_Top_10与ESAPI_试读样章.pdf”揭示了这份资料可能来源于一本书的一部分,书中可能会详细探讨Web应用面临的十大安全威胁(OWASP Top 10),这是由OWASP(开放...

    寒江独钓——Windows 内核编程与信息安全(免费试读版)

    《寒江独钓——Windows内核编程与信息安全(免费试读版)》是一本深入探讨Windows内核模块开发的技术书籍。作者楚狂人以其丰富的实践经验和技术积累,为读者提供了关于实时扫描的防毒软件、虚拟磁盘、硬盘还原、硬盘...

    Node.js项目实践:构建可扩展的Web应用试读样章

    除了Web应用开发常用的模块库之外,Node.js也支持许多与前端相关的工具,如Webpack、Babel等。Webpack可以帮助开发者打包JavaScript模块,优化前端资源;Babel则允许开发者使用新版本JavaScript的语法,提高开发效率...

    通信新读——从原理到应用

    《通信新读——从原理到应用》是一本深入浅出探讨通信技术的书籍,它旨在帮助读者理解通信技术的基础知识并将其应用到实际场景中。试读部分可能涵盖了书中的核心概念,为读者提供了一个全面了解通信技术的窗口。在这...

    09金融联考复习全书——辅导讲义(试读版)

    09金融联考复习全书——辅导讲义(试读版)

    JavaScript模式(英文版)+基于MVC的JavaScript Web富应用开发(试读)

    JavaScript模式(英文版)+基于MVC的JavaScript Web富应用开发(试读) 基于MVC的JavaScript Web富应用开发(构建下一代互联网富应用之最前沿技术),面向jQuery开发者的客户端应用开发指南,本书教你如何构建先进的富...

    [试读]Web组件分离 - 节选

    在探索如何构建高性能Web站点的过程中,一个核心的概念不断浮出水面——Web组件分离。这一理念的核心在于理解并利用不同Web组件的特性,通过合理的设计与优化,最大限度地提升网站的整体性能。本文将深入探讨Web组件...

    手机游戏开发全书——部分章节试读.pdf

    综上所述,《手机游戏开发全书——J2ME完整实例精解》是一本集理论与实践于一体的综合性指导书,不仅涵盖了手机游戏开发的各个环节,还融入了作者丰富的项目经验,对于希望深入了解和掌握手机游戏开发技术的读者来说...

    软件性能测试与LoadRunner实战试读

    《软件性能测试与LoadRunner实战试读》是针对IT专业人士,特别是测试人员的一份宝贵资源。LoadRunner是一款业界广泛使用的性能测试工具,由HP(现为Micro Focus)开发,它能够模拟大量用户并发操作,帮助识别系统在...

Global site tag (gtag.js) - Google Analytics