Django 开源 Web 应用框架周一放出一款安全补丁,指出过长的密码其实也存在安全问题,容易被黑客利用成为 DoS 攻击手段之一。
过去相当一段时间,我们都强调要用复杂且较长的密码来保护我们的数字资产。大多数网站在保存用户密码时会使用 PBKDF2 等算法进行加密,以让明文信息得以哈希值的方式保持于数据库中。然而,这种加密过程会要求服务器执行较为复杂的计算,而密码越长,所消耗的计算时间也就越长。
根据 Django 今日的声明指出,一段长达 1 兆字节的密码若采用 PBKDF2 算法进行加密,需耗费服务器约一分钟左右的计算时间。此种情况会被黑客所利用——即故意反复发送长度较长,且必定不匹配的密码,则有可能导致服务器宕机,成为典型的 DoS 攻击案例。
鉴于此,Django 在今天的安全更新中特别对密码长度进行了限制,为 4096 个字节。