降低发生突发事件和灾难可能性的一个好方法,是确保防御架构完整性及工具集的正确性。这需要在自己现有的条件下对这些技术控制仔细考虑,以决定哪些是适用的,哪些是不适用的。不管你使用什么工具,都有一个底层流程在动态环境中驱动它们的操作。1大多数商业软件和Web应用程序服务器都默认安装了某种类型的管理控制台,攻击者收集足够多信息时,就能对这样的接口发起攻击。最安全的系统管理接口应该是一种带外接口,即使用一条独立的通信通道,以避免系统所运行的环境中存在任何脆弱性。通过一个基于Web的应用程序进行登录。从客户或提供商的角度看,身份验证与访问控制都是一个明显的问题。客户希望访问控制机制提供他们期望可信实体所提供的安全性和隐秘性,但是不希望这个过程过于复杂。从服务提供商的角度出发,他们希望在性能、合规性和成本许可的范围内为客户提供尽可能可靠的安全。通过一个安全的机制来传送所有身份验证信息是一种最佳做法。验证这些请求被允许是输入验证的一部分工作,而且这通常与某些编码的验证规则相关联。下面列出了一些输入验证攻击的例子:路径或目录遍历这种攻击也称为“点–点–斜线”,因为它通过在URL中插入几个“../”字符来回溯或遍历本不应通过Web访问的目录,从而能够实施攻击。跨站点脚本(XSS)指的是在一个Web站点发现的脆弱性允许攻击者在Web应用程序中注入恶意代码的攻击。XSS攻击使攻击者(用客户端脚本语言,如JavaScript)把他们的恶意代码注入脆弱的网页中。随后,不知情的用户在访问这个站点时,恶意代码就会在他们的浏览器中执行,这样可能会导致Cookies被盗、会话被劫持、恶意代码被执行和访问控制被绕过,或者有助于利用浏览器的错落性。SQL注入就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。参数确证(parametervalidation)是指首先确证应用程序收到的值在确定的界限内,然后再由服务器应用程序在系统内处理这些值。参数确证与输入确证的主要区别在于,应用程序是否期望用户输入一个值,而不是由应用程序定义的一个环境变量。这个领域的攻击将操纵系统认为客户端无法配置的值,主要原因是接口中没有提供这样一种机...