对于Web应用程序的开发者来说,性能与安全就好像两把利剑插在他们心头。Web应用程序由 于其面对用户的特殊性,所以特别容易受到攻击。笔者在这里以ASP.NET+VisualStudio为例, 谈谈该如何有效应对Web应用程序安全威胁。
一、主要安全威胁分析。
对于Web应用程序来说,其可能受到的安全威胁有很多。如电子欺骗、篡改等等。笔者在这 里将常见的一些安全威胁作一些讲解。这些内容可以为后面讲到的应对措施建立一个背景知识 。
第一个威胁是篡改。篡改是指在未经管理员授权的情况下更改或者和删除资源。如前段日子 ,经常有人报料网站被攻击、主页被更改的面目全非。要进行这个篡改,难度也不高,重要的 是取得相关的权限,然后通过脚本就可以来完成。针对这个威胁,现在常用的手段是使用 Windows操作系统的安全机制来锁定文件、目录和其他的资源。另外,就是要最好权限管理,如 Web应用程序应该以最少的特权来运行等等。
第二个威胁是电子欺骗。简单的说,电子欺骗是说以未经授权的方式模拟用户和进程。如通 过电子欺骗可以非法键入其他用户的凭据、更改Cookie 中的内容已假装是合法的用户等等。针 对这种电子欺骗,往往可以使用严格的身份验证机制来处理。也就是说,每当有用户请求访问 非公开信息的时候,如企业内部的OA系统或者邮件系统(它们挂在企业的网站上),就需要使用 严格的身份验证机制来确保这些用户身份的合法性,特别是要判断他们的身份是否与他们声称 的身份相符合。如下图所示,有时候用户声称的时候可能跟真实身份不一致(声称的身份是假冒 的)。此时就需要在在身份验证机制的帮助下,根据一定的规则来判断 “用户声称身份”与“ 用户真实身份”的符合程度。如果符合的话,可以就受其请求,不符合的话则拒绝。
三是拒绝服务。拒绝服务攻击 就是指采取某种手段故意导致应用程序的可用性降低。如采取某种手段,让Web应用程序负载过 渡,使其无法为普通用户提供服务。举一个形象的例子,就好像使租个几千辆QQ车子在狭窄的 马路上来回跑。此时由于马路已经被占满,其他车就开不进来。拒绝服务往往是一种损人不利 己的行为。要防止拒绝服务攻击的话,对于普通企业来说,往往可以限制提供服务请求的数量 或者说拒绝已知的恶意用户和IP地址的访问等等。
除了以上这些威胁之外,还可能有特权升级、信息泄露、否认等等安全威胁行为。可见要设 计一个安全的Web应用程序,难度不小。笔者在这方面虽然称不上专家,但是还是有一些自己的 心得。在这里笔者就拿出来供大家参考。