4、不安全的直接对象参照物

    ■ 问题:攻击者可以利用直接对象参照物而越权存取其他对象。当网站地址或者其他参数包含了文件、目录、数据库记录或者关键字等参照物对象时可能发生这种攻击。

    银行网站通常使用用户的账号作为主关键字,这样可能在网络接口中暴露用户的账号。

    OWASP说:“数据库关键字的参照物通常会泄密。攻击者可以通过猜想或者搜索另一个有效关键字的方式攻击这些参数。通常,它们都是连续的。”

    ■ 真实案例:澳大利亚的一个税务网站在2000年被一位用户攻破。那位用户只是在网站地址中更改了税务ID账号获得了1.7万家企业的详细资料。黑客以电子邮件的方式通知了那1.7万家企业,告知它们的数据已经被破解了。

    ■ 如何保护用户:利用索引,通过间接参照映射或者另一种间接法来避免发生直接对象参照物泄密。如果你不能避免使用直接参照,那么在使用它们之前必须对网站访问者进行授权。

5、跨站指令伪造

    ■ 问题:这种攻击简单但破坏性强,它可以控制受害人的浏览器然后发送恶意指令到网络应用软件上。这种网站是很容易被攻击的,部分原因是因为它们是根据会话cookie或者“自动记忆”功能来授权指令的。各银行是潜在的被攻击目标。

    Williams说:“网络上99%的应用软件都是易被跨站指令伪造漏洞感染的。现实中是否发生过某人因此被攻击而损失钱财的事呢?也许连各银行都不知道。对于银行来说,整个攻击看起来像是用户登录到系统中进行了一次合法的交易。”

    ■ 真实案例:一位名叫Samy的黑客在2005年末利用一个蠕虫在MySpace网站上获得了100万个“好友”资料,在成千上万个MySpace网页上自动出现了“Samy是我的英雄”的文字。攻击本身也许是无害的,但是据说这个案例证明了将跨站脚本与伪造跨站指令结合在一起所具备的威力。另一个案例发生在一年前,Google网站上出现了一个漏洞,外部网站可以利用那个漏洞改变用户的语言偏好设置。

    ■ 如何保护用户:不要依赖浏览器自动提交的凭证或者标识。OWASP说:“解决这个问题的方法是使用一种浏览器不会记住的自定义标识。”

6、信息泄露和错误处理不当

    ■ 问题:各种应用软件产生并显示给用户看的错误信息对于黑客们来说也是有用的,那些信息可能将用户的隐私信息、软件的配置或者其他内部资料泄露出去。

    OWASP说:“各种网络应用软件经常通过详细或者调试出错信息将内部状态信息泄露出去。通常,这些信息可能会导致用户系统受到更有力的攻击。”

    ■ 真实案例:信息泄露是通过错误处理不当发生的,ChoicePoint在2005年的崩溃是这种类型的典型案例。攻击者假扮是ChoicePoint的合法用户在公司人员信息数据库中寻找某个人的资料,随后窃取了16.3万个消费者的记录资料。ChoicePoint后来对包含敏感数据的信息产品的销售进行了限制。

    ■ 如何保护用户:利用测试工具,比如OWASP的WebScarab Project等来查看应用软件出现的错误信息。OWASP说:“未通过这种方法进行测试的应用软件几乎肯定会出现意外错误信息。”

    另一个方法是:禁止或者限制在错误处理中使用详细信息,不向用户显示调试信息。

7、不安全的认证和会话管理

    ■ 问题:如果应用软件不能自始至终地保护认证证书和会话标识,用户的管理员账户会被攻破。应注意隐私侵犯和认证系统的基础原理并进行有效监控。

    OWASP说:“主要验证机制中经常出现各种漏洞,但是攻击往往是通过注销、密码管理、登录、自动记忆、秘密问题和账户更新等辅助验证功能展开的。”

    ■ 真实案例:微软公司曾经消除过Hotmail中的一个漏洞,恶意Java脚本程序员曾经在2002年利用这个漏洞窃取了许多用户密码。这个漏洞是一家联网产品转售商发现的,包含木马程序的电子邮件可以利用这个漏洞更换Hotmail用户的操作界面,迫使用户不断重新输入他们的密码,并在用户不知情的情况下将它们发送给黑客。

    ■ 如何保护用户:通信与认证证书存储应确保安全性。传输私人文件的SSL协议应该是应用软件认证系统中的选择,认证证书应以加密的形式进行保存。

    另一个方法是:除去认证或者会话管理中使用的自定义cookie。