与Web应用程序常用的任何其他安全机制相比,验证功能中存在着更多设计方面的薄弱环节。即使在基于用户名和密码验证用户这种非常简单的标准化模型中,其中包含的设计缺陷也容易导致应用程序被非法访问。
许多Web应用程序没有或很少对用户密码的强度进行控制。应用程序常常使用下列形式的密码:
非常短或空白的密码;
以常用的字典词汇或名称为密码;
密码和用户名完全相同;
仍然使用默认密码。
图6-1是一个实施脆弱密码强度规则的实例。通常,终端用户很少具有安全意识。因此,没有实施严格密码标准的应用程序很可能包含大量使用脆弱密码的用户账户。攻击者很容易就可猜测出这些密码,从而对应用程序进行未授权访问。