
上QQ阅读APP看书,第一时间看更新
2.7.4 安全弱点
大多数安全应用程序含有一个专门管理访问权限和相关安全事务的组件。如图2-8中1所示,攻破应用程序最简单的方式之一是,用户接口中的代码允许不经过认证请求者的访问权限而直接访问应用程序的功能。这个问题可以这样检测,即由安全功能来分析输入请求并确定它们是否通过了认证机制。
黑客频繁地通过跨站脚本和SQL注入来利用应用程序不同层间的安全漏洞。跨站脚本涉及将JavaScript嵌入到用户输入中。类似地,SQL注入涉及将SQL查询嵌入到用户输入中。对于这两种情况,黑客都期望应用程序的用户界面层无法识别有害的输入,并允许其在逻辑层或数据库层执行,从而可以返回保密的客户或财务信息等结果,如图2-8所示。当应用程序缺乏对跨越多层的用户输入、处理请求或返回结果进行适当的免疫检查时,这类安全攻击就能成功。通过评估应用程序以确保在其架构内适当的层里实现了对输入值、处理请求和输出内容的检查,可以检测应用程序各层之间的这类安全漏洞。
黑客还可以通过发送给终端用户的错误消息来获得对公司网络的访问权限,从而获取私人客户数据,这些错误消息包含了服务器名字、IP地址、应用程序服务器版本,其他可能会被人滥用来攻击服务器弱点和洞悉应用程序的信息。网页中的Java代码会产生异常,偶尔会泄漏信息,黑客能利用这些信息洞悉应用程序的其他层。敏感信息也可能被网页里的说明泄漏,它们是终端用户可见的。通过检测对基于Web的用户接口中Java代码,以及用户接口层外部向应用程序服务器转发调用的组件的使用,可以将这类问题减到最少。