《Web应用安全威胁与防治》 这本书讲的是什么 , 书的名字已经阐述的很清楚, 我就不再赘述了
看了下ITeye提供的试读章节 , 的确有些干货 , 感觉囤一本还是有些必要的 , 也在此向ITeye的朋友们推荐下
试读章节包括了第六章 第十章和第十二章 其中第六章介绍了一些web安全方面的扫描工具 第十章介绍了身份认证和会话管理方面的安全问题 第十二章介绍了CSRF(跨站请求伪造)的相关知识
下面是我阅读第十章和第十二章后的读书笔记:
会话劫持:
截获sessionId 从而劫持该sessionId对应的会话
会话固定:
1 得到A网站的一个sessionID
2 诱导用户B发送含该sessionID的请求 , 用户B通过输入信息的方式登录了A网站
3 通过该sessionID , 可以得到B的权限
*url中写入sessionID 可能导致会话固定
非直接会话攻击 :
原因:
服务器端在用户还没有成功登录/注册/密码重置前 , 就将user信息存入session , 相应操作失败后 虽然提供了302重定向到失败页面 但客户端可以通过一些工具强制不执行302跳转 , 而此时server端session已经存在user信息 , 这样攻击者即使登录验证失败 , 却还能取得user的权限
解决办法 :
不要在 登录/注册/密码重置 前 就在session 中置入user信息 ;
防治会话固定的方法:
一旦用户登录成功,马上invalidate用户的会话
保护sessionID (会话令牌) 的方法 :
会话过期(软会话过期(xx时间没有操作) (硬会话过期(通过web filter 实现)))
保护cookie (设置 secure , HttpOnly) 防止中间人攻击 (Man in the Middle) *servlet 3.0 可以在web.xml 中设置 这两个属性
提供完整的 logout 功能
跨站请求伪造 CSRF ( Corss-site Request Forgery )
其特征为:
用户B登录A网站没有退出 打开的任何页面都可以向A网站发送B可以执行的请求 (如将可执行url 放入 img标签中 , 内嵌可提交表单的不可见iframe等)
主要的预防方法:
在重要操作前(转账/改密) 添加二次验证
添加token , 方法是:
1 在用户刚登录时 产生一个不可预知的Token ,
2 在任何需要保护的表单/URL 中 添加这个Token作为参数
3 提交相应请求时检查这个token
4 退出/session过期时 移除该token并销毁session
注意 , 添加Token并不能确保不会受到CSRF攻击 , 特别是在可能同时存在XSS漏洞的情况下
一个方便添加token的类库 : CSRF Guard
注:本文参加了ITeye1月技术图书有奖试读活动
相关推荐
除了Web应用开发常用的模块库之外,Node.js也支持许多与前端相关的工具,如Webpack、Babel等。Webpack可以帮助开发者打包JavaScript模块,优化前端资源;Babel则允许开发者使用新版本JavaScript的语法,提高开发效率...
压缩包中的文件名“Web应用安全威胁与防治——基于OWASP_Top_10与ESAPI_试读样章.pdf”揭示了这份资料可能来源于一本书的一部分,书中可能会详细探讨Web应用面临的十大安全威胁(OWASP Top 10),这是由OWASP(开放...
JavaScript模式(英文版)+基于MVC的JavaScript Web富应用开发(试读) 基于MVC的JavaScript Web富应用开发(构建下一代互联网富应用之最前沿技术),面向jQuery开发者的客户端应用开发指南,本书教你如何构建先进的富...
《软件性能测试与LoadRunner实战试读》是针对IT专业人士,特别是测试人员的一份宝贵资源。LoadRunner是一款业界广泛使用的性能测试工具,由HP(现为Micro Focus)开发,它能够模拟大量用户并发操作,帮助识别系统在...
【标题】:Ella口语笔记试读.pdf 【描述】:这部分内容主要涉及英语口语中的常见表达,包括回家、回到、拿到、返回等情境的用词和短语,以及一些日常对话中的常用词汇和表达方式。 【标签】:求职面试、范文/模板/...
Windows信息安全与内核编程(试读版),虽然是试读版,但是对于从事信息安全的朋友还是有很好的帮助的,希望大家喜欢。
综上所述,《Android应用开发全程实录》的这些章节覆盖了Android开发的关键技术,无论你是初学者还是有经验的开发者,都能从中受益匪浅。通过深入学习和实践,你将能够创建出功能丰富、用户体验优秀的Android应用...
试读章节可能会讲解如何安装和配置Android Studio,以及创建第一个“Hello, World”应用。 2. **Android项目结构**:介绍Android应用的基本目录结构,如`src`、`res`、`build.gradle`等,以及每个部分的作用,帮助...
《寒江独钓——Windows内核编程与信息安全(免费试读版)》不仅为读者提供了关于Windows内核编程的基础知识和技术细节,还涵盖了多种信息安全领域的具体应用案例。通过阅读本书,读者不仅可以学习到如何开发复杂的...
8. **威胁模型与安全策略**:为了保护系统,需要了解潜在的攻击方式和应对策略。书中的这部分可能涉及常见的攻击模型,如缓冲区溢出、权限提升等,并给出防范措施。 9. **漏洞分析与修复**:可能会分析一些实际的...
1. **留级与试读**: - **留级**:当学生在一个学年内未能达到学习要求,如累积一定数量的不及格课程,根据学籍管理规定,可能会被要求降级到下一年级学习,以便有更多时间补习和通过课程。 - **试读**:对于面临...
第1章 什么是STM321 1.1从CortexM3说起1 1.2STM32面面观3 第2章 杰出的源泉——ARM CortexM3内核架构8 2.1 ARM架构回顾8 2.2 CortexM3 CPU:核心中的核心9 2.2.1管道9 2.2.2编程模型10 2.2.3 CortexM3 CPU的运行模式...
《多云安全风险图谱》是一本专注于探讨企业在采用多云策略时可能面临的各类安全挑战的书籍。...同时,企业还需要关注全球范围内的合规性要求,以确保在享受多云带来的好处的同时,能够有效抵御和预防安全威胁。
"操作系统高分笔记" 操作系统是计算机系统中的一个系统软件,其管理和控制计算机系统中的资源。从系统观点看,操作系统是计算机系统中的一个系统软件;从用户的观点看,操作系统是用户与计算机之间的接口;从软件...
《USB应用开发实例详解》是一本深入探讨USB设备与上位机交互的实践性书籍,主要针对VC(Visual C++)和C#两种编程环境下的上位机开发进行了详尽的阐述。书中不仅介绍了基本的USB协议原理,还提供了丰富的实战案例,...