web应用程序采用的防御机制由以下几个核心因素构成:1、处理用户访问应用程序的数据与功能,防止用户获得未授权访问 2、处理用户对应用程序功能的输入,防止错误输入造成不良影响 3、防范攻击者,确保应用程序在成为直接攻击目标时能够正常运转,并采取适当的防御与攻击措施挫败攻击者 4、管理应用程序本身,帮助管理员监控其行为,配置其功能

鉴于她们在解决核心安全问题过程中的所发挥的主要作用,一个典型的应用程序的绝大多数受攻击面也由这些机制构成

在软件环境中,受攻击面是指对未通过验证的用户的有效功能,也就是说,未通过验证的用户通过软件的默认配置能够得到什么目的

大多数web应用程序使用三层相互关联的安全机制处理用户访问:身份验证、会话管理、访问控制

攻击web应用程序时,渗透测试员应当投入大量精力,攻击应用程序采用的各种身份验证有关的功能。出人意料的是,这种功能中存在的缺陷往往允许攻击者非法访问敏感的数据与功能。

处理用户访问的下一项逻辑任务是管理通过验证用户的会话。

几乎所有的web应用程序都为每一位用户建立一个会话,并向用户发布一个表示会话的令牌,会话本身是一组保存在服务器上的数据结构,用于追踪用户与应用程序 的交互状态。令牌是一个唯一的字符串,用于程序将其映射到会话中,当用户收到一个令牌是,浏览器会在随后的http请求中将它返回给服务器,帮助应用程序将该请求与该用户联系起来,虽然许多应用程序使用隐藏表单字段或url查询字符串传送会话令牌,但http cookie菜式实现这一目的的常规方法。

就受攻击面而言,会话管理机制的有效性基本上取决于其令牌的安全性,绝大多数针对他的攻击都企图攻破其他用户的令牌。令牌生成过程中的缺陷是主要的漏洞来源,实攻击者能够推测出发布给其他用户的令牌,随后,攻击者在利用令牌中的缺陷截获其他用户的令牌。

处理用户访问的最后一个逻辑步骤是做出并实施正确的决策,决定允许或拒绝每一个请求。

如果前面的机制运作正常,应用程序即可从收到的每一个请求确认用户的身份。再次基础上,应用程序需要决定是否授权用户执行其所请求的操作或访问其中数据。

开发者经常会对用户与应用程序的交互做出错误的假设,并常常有所疏忽,在某些应用程序功能中省略访问控制检查。探查这些漏洞是一件费力的工作,因为需要对每一项功能重复进行相同的检查。然而,因为访问控制机制中存在的大量漏洞,所以在测试web应用程序时付出的努力总是值得的。

应用程序的每一项功能以及几乎每一种常用的技术都可能出现输入方面的漏洞。通常来说,输入确认(input validation)是防御这些估计的必要手段。

除了用户通过浏览器界面提交的各种输入外,一个典型的应用程序还会收到大量数据,她们在服务器上生成,并被传送给客户端,以便客户端能够在随后的请求中将其返回给服务器,这些数据包包括cookie和隐藏表单字段,普通应用程序用户虽然无法浏览这些数据项,但攻击者能够查看并修改这些数据。

输入处理方法:1、拒绝已知的不良输入(黑名单)2、接受已知的正常输入(白名单)3、净化4、安全处理数据 5、安全检查

各种基于黑名单的过滤,特别是那些由web应用程序防火墙执行的过滤,都易受空字节的攻击。由于在托管和非托管情况下处理字符串的方式各不相同,在被阻止的表达式之前的任何位置出入空字节可能导致过滤器停止处理输入,并因此无法确定表达式。

对空字节的处理方式加以利用的攻击存在于web应用程序安全的各个领域。在空字节被当做字符串分隔符的情况下,空字节可用于终止文件名或对某个后端组建的查询,在接受并忽略空字节的情况下,可以被阻止的表达式中插入任意空字节,以避开基于黑名单的过滤。

边界确认(boundary validation)是一种更加有效的模型。服务器端应用程序的每一个单独的组件或功能单元将其输入当做来自潜在恶意来源的输入等待。除客户端与服务器之间的外部边界外,应用程序在上述每一个信任边界上执行数据确认。

第二章 核心防御机制相关推荐

  1. 信息管理导论川大667 | 第二章核心知识点

    第二章 信息环境与信息社会 1. 信息环境与信息社会 1.1 信息环境 #mermaid-svg-WTFRsKb2ZJcbsO8W {font-family:"trebuchet ms&qu ...

  2. 《软件工程概论》第二章核心内容

    1.软件工程方法学:软件生命周期全过程中使用的一整套技术的集合成为方法学,也称为范型.三要素:方法.工具.过程  2.传统方法的特点:传统方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地逐 ...

  3. 黑客攻防技术宝典Web实战篇第2版—第2章核心防御机制

    2.1 处理用户访问 1.大多数Web应用程序采用三层相互关联的安全机制处理用户访问: ①身份验证 ②会话管理 ③访问控制 2.1.1 身份验证 1.身份验证机制是应用程序处理用户访问的最基本机制,用 ...

  4. 第二章 核心动画渲染框架

    虽然核心动画的图层和Cocoa的视图在很大程度上没有一定的相似性,但是他们两者最大的区别是,图层不会直接渲染到屏幕上. 在模型-视图-控制器(model-view-controller)概念里面NSV ...

  5. 《商用密码应用与安全性评估》第二章政策法规2.2法律法规

    <密码法>实施前商用密码法律法规体系 总体原则:党管密码,依法行政 1999年颁布行政法规<商用密码管理条例> <电子签名法>:一部涉及规范多项密码管理工作的法律 ...

  6. 黑客攻防技术宝典-Web实战篇——第二章、核心防御机制(一)

    第二章.核心防御机制(一) 在 上一章 中我们讲到web应用程序的核心问题在于用户可以提交任何输入,那么相对应的防御机制也大都是针对用户的请求进行处理防御 下面是防御机制的核心因素: 处理用户访问应用 ...

  7. 第二章 单元测试的基本概念和核心技法

    第二章 单元测试的基本概念和核心技法 2.1 良好的单元测试--定义 我们已经了解了程序员需要单元测试,下面我们来给单元测试作一个完整的定义: ● 定义: 单元测试是一段自动执行的代码,它调用被测类或 ...

  8. 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第36页第二章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 2.21 练习 2-1. 变量,print和字符串格式化操作符.启动交互式解 ...

  9. Python爬虫核心知识-第二章:2.2 爬虫urllib.parse模块

    Python爬虫核心知识 第二章:2.2 爬虫urllib.parse模块 2.2 爬虫urllib.parse模块 Python中的urllib.parse模块中,提供了很多用来解析和重组URL的函 ...

最新文章

  1. No identities are available for signing的解决方法
  2. [LeetCode] Rotate List
  3. 01背包java 源码
  4. CSS系列——前端进阶之路:初涉Less
  5. 死锁产生的原因及四个必要条件
  6. 跨域调用WebApi
  7. vueinput里只能输入数字_大佬们,vue里面 限制input只能输入数字怎么做啊?
  8. solr4.3纠错源码学习二——基于主索引
  9. 成立一年 百度搜索公司迎来首任 CTO
  10. 蓝桥杯BASIC-28 基础练习 Huffuman树
  11. Java的redis控制台-Jedis
  12. HTML+CSS+JavaScript实现打字小游戏
  13. 短链接服务的原理和实现
  14. 调用钉钉API发送消息通知给个人或部门 ,钉钉后台
  15. 第三周啦,加油加油再加油。
  16. 极客日报:贾跃亭回应是否有回国打算:那必须的;顺丰将拿出 2 亿元给快递员加薪;OpenAI 宣布解散机器人团队
  17. C/C++超市收银系统
  18. python爬取pubmed的文献_爬虫获取pubmed中文献的标题和摘要
  19. cmd控制台的点阵字体不能调整大小怎么办?
  20. 当今app行业 比较流行的 简称 汇总

热门文章

  1. L - 拉普拉斯变换
  2. tyvj 1143 飘飘乎居士的约会 走迷宫(可穿墙一次)
  3. SAP Query报表定制(SQ01\SQ02\SQ03))
  4. USB枚举过程 (一)
  5. dma-buf 由浅入深(二) —— kmap / vmap
  6. freeradius mysql nas_freeradius和mysql的集成
  7. 中小型技术团队的岗位与主要职责
  8. 腾讯全面封杀显IPQQ,珊瑚虫作者被捕,飘云作者退出开发
  9. 去大厂面试又栽了,败在了算法的理论面试...
  10. 题解 Mayan游戏