开发者社区> 问答> 正文

web登录密码传输安全问题:报错

如果你在公共场合上网,正登录oschina网站(打个比方),有人在网关上抓包分析出你用户名和密码。

这样是不是密码就会被盗了?小弟一直没想到好的方法能有效防止这种场景.(https先不考虑)。

我研究了一下oschina和iteye的登录部分网页代码发现。

iteye就是直接采用明文传输。

oschina虽然采用sha1加密后再传给服务器,但是即使这样应该也还是可以通过使用密串重构HTTP请求来完成登录。


当然这种事情概率很低,咱们只进行纯技术探讨。


展开
收起
kun坤 2020-06-06 14:48:46 888 0
1 条回答
写回答
取消 提交回答
  • 传输安全只有https
    客户端hash密码只是表明作为网站拥有者不想也不会记录原始密码是什么
    上面那个链接我回复过, 不用ssl就算加密也没用, 任意节点伪造response,加上一段js就可以实现form submit的全局委托, 直接把你表单的明文数据转发到第三方上, 再加密提交也没用
    ######服务端添加一个文件MD5验证过程,客户端用AJAX配合验证本页面是否在传输过程中有被改动的痕迹~!######回复 @somecold : 第一个问题我觉得花大力气还堵不死没什么必要, 普通geotrust, comodo的256bit加密的收费ssl也就单域几十块一年, 相对来说彻底多了; 第二个问题, 没有任何办法能防止非正常的web方式构造http请求。######这么说确实没法在传输层保证,不过用这种方式应该可以杜绝大部分小黑客吧? 另外请教下有办法防止重构http请求吗?就是限定只能通过网页进行登录######

    之前我发帖讨论过,可以参考一下

    http://www.oschina.net/question/42741_51307

    ######

    恩我看完了,leo108 你的想法就是说在登录的时候先去服务器获取一个token(token只能用一次)。

    然后拿 token 和 MD5(明文密码) 进行MD5加密后传输(数据库存 MD5(明文密码)。

    这样看来针对登录这部分应该能有效防止我说的情况。

    但是我现在有另外一个想法

    是不是可以有办法防止 即使得到密串,也没法重构HTTP请求,就是只能通过打开网页输入用户名和密码来登录,没办法通过组装一个url或者编程实现登录?

    ######回复 @七液 : 不是很明白,什么也可以clone?网上没搜到http clone嗅探相关资料,麻烦说详细点。######这个也可以clone,看一下http clone嗅探的相关资料就知道了######sha1解开的成本太高
    ######解开的成本高######随机验证码+hash目前最合适的方法用完后一次性抛弃即可。rsa还需要和服务器通讯这就和https一样了######明白了,你说的是加sha的方式成本太高吧,那有什么好办法没呢######蟋蟀哥哥是说oschina采用的sha1成本太高,还是说我说的问题可以采用sha1但是成本太高?######

    https://mail.qq.com/  (本人亲测)
    在IE登录QQ邮箱,Wireshark抓取Cookie,停止Wireshark,断网重拨获取新的IP,在Firefox注入Cookie,成功登录QQ邮箱.
    QQ邮箱难道连IP都不认证?
    能控制网关第一手就能拿到Cookie,先不说破解用户密码.
    不过普通人怎么可能控制公网上的网关?
    路由局域网内用arpspoof欺骗,开IP路由转发还有可能办成网关过滤用户信息.
    除非能入侵公网上的网关,否则都不太现实.

    ######一直觉得腾讯强在用户体验,技术在它们的价值观应该不是第一位的。出现这种情况也正常吧######

    我在想用java/flash做成控件配合des之类的加密的方法在http上传输安全不?

    ######

    引用来自“熊猫与猫无关”的答案

    我在想用java/flash做成控件配合des之类的加密的方法在http上传输安全不?

    安全应能达到,但是这样与ssl相比,有优势吗
    ######

    引用来自“somecold”的答案

    引用来自“熊猫与猫无关”的答案

    我在想用java/flash做成控件配合des之类的加密的方法在http上传输安全不?

    安全应能达到,但是这样与ssl相比,有优势吗

    证书年年需要续费这个算不算SSL的劣势

    (我是纯属来捣乱的.....)

    ######

    我想可以这么做:

    1. md5(pwd)做为key去加密(用户的信息+ip+有效时间范围),加密算法,可以是tea

    2.服务器用md5(pwd)做为key去解密,之后校验用户的信息,ip和有效时间范围。

    3.服务器存储的就是md5(pwd)

    2020-06-08 11:22:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载