传递密码是否可以接受?

Mal*_*ist 0 security ssl md5

我有一个网站,要求用户使用用户名和密码进行身份验证.我想使用SSL,但我没有SSL证书.但是,我认为其他一些事情我觉得还可以.

我的网站主要是基于AJAX的,需要 JavaScript,否则什么都行不通.

当用户尝试登录时,我使用AJAX查询数据库以查找该用户名的盐,如果没有找到,则返回随机盐(以防止人们知道是否存在具有该用户名的用户) .然后,使用JavaScript的MD5函数,我将密码哈希并加密密码4K次(就像Linux使用MD5进行密码哈希)客户端,然后我以明文形式将该哈希传递给服务器.然后,将对此哈希进行多次哈希处理,并使用数据库中的内容进行检查.

这样安全吗?如果没有,我怎样才能保证它的安全而不需要为大多数内部网站提供SSL证书?

eri*_*son 15

不,这不安全.一个中间人可以窥探散列值并稍后将它呈现给你,错误地验证自己.

要对某人进行身份验证,您必须证明他们知道一个秘密.通过未加密的频道传递的任何东西都不是秘密.

使用SSL.您可以免费获得Firefox接受的证书,并且可以向IE用户提供有关将新CA添加到其可信根的说明.开箱即用的所有浏览器都接受的证书很便宜,我认为每年30美元.

  • 您可以在每个请求中使用密码和MAC来设想解决方案,但它会充满您不会知道的漏洞.并且,实施它比购买证书要昂贵得多. (4认同)