Web应用程序的基本安全问题(所有用户输轴入都不可信)导致应用程序推行很多安影制来抵攻击。尽管其设计细节与实行效率可能千差万别,但几子所有应用程序的安全机制在定义上都具备相似性。
Web应用程序使用的防每机制由以下几个核心原因构成。
口处置用户诗问应用程序的数据与功能,预防用户获得未权访问。
口处置用户对应用程序功能的输人,预防错误验人导致不好的行为。
口防范攻击者,确保应用程序在成为直接攻击日标时可以正常运转,并采取适合的防每与攻击描施推败攻击者。
口管理应用程序本身,帮助管理员监控其行为,配置其功能
鉴于它们在解决核心安全问题过程中所发挥的要紧用途,一个典型应用程序的绝大部分受政击面也由这类机制构成。知已知彼是战争的最重要法则,那样防攻击者向应用程序发动有如击的要紧首要条件是彻底知道这类机制。无论读者在透测试方面是不是有经验,都应花时间知道过核心计制在遇见的每一种应用程序中的工作原理,并确定使其易于遭到攻击的弱点。
1、处置用户访问
几乎任何应用程序都需要满足一个中心安全需要,即处置用户访问其数据与功能。在通含状况下,用户通常分为几个种类,如置名用户、正常通过验证的用户和管理用户。面且,很多状况下,不一样的用户只允许访问不一样的数据,比如,Web邮件应用程序的用户只能阅读我们的面别人的邮件。
大部分Web应用程序用三层相互关联的安全机制处置用户访问:
口身份验证;
口会话管理
口访问控制。
上述每个机制都是应用程序受攻击面的一个重要部分,对于应用程序的总体安全情况极其要紧。因为这类机制相互依靠,因此根本不可以提供强大的总体安全保护,任何一个部分存在缺点都可使攻击者自由访问应用程序的功能与数据。
2、处置用户输入
所有用户输入都不可信。很多针对Web应用程序的不同攻击都与提交错误输入有关,攻击者专门设计这种输入,以引发应用程序设计者没办法预料的行为。因此,可以安全处置用户输入是对应程序安全防御的一个重要需要。
应用程序每一项功能与几乎每一种常见的技术都可能出现输入方面的漏洞。一般来讲,输入确认是防御这类攻击的必要方法。然后,任何一种保护机制都不是万能的,防御恶意输入也并不是如听起来那样简单。
3、处置攻击者
任何设计安全应用程序的开发职员需要基于如此一个假设:应用程序将成为蓄意破坏且资深的攻击者的直接攻击目的。可以以受控的方法处置并应付这类攻击,是应用程序安全机制的一项主要功能。这类机制一般结合用一系列防御与攻击手段,以尽量地阻止攻击者,并就所发生的事件,公告应用程序所有者与提供相应的证据。为处置攻击者而采取的手段通常由以下任务组成:
口处置错误;
口维护审计日志;
口向管理员发出警报;
口应付攻击。
尽管存在巨大差异,但几乎所有些Web应用程序都以某种形式使用相同的核心安全机制。这类机制是应用程序应付恶意用户所采取的主要防御手段,因而应用程序的受攻击面大多数也由它们构成。大家在本书后面介绍的漏洞也主要来自于这类核心计制中存在的缺点。在这类机制中,处置用户访问和用户输人的机制是非常重要的机制。当针对应用程序发动攻击时,它们将成为主要攻击对象。借助这类机制中存在的缺点一般可以完全攻破整个应用程序,使攻击者可以访问其他用户的数据、实行未授权操作与注入任意代码和命令。
文章名字网站制作核心防御机制