• 谈谈360浏览器保存密码的差异


    多事之夏,最近黑阔大牛们经常光顾我们网站,不甚荣幸,也让我们老大没少加班。上指纹系统,开safe_mode,重新编译PHP等等,安全警戒一度提到最高。

    在用户登录方面,为了用户密码安全,我们在用户输完密码点击提交后,js自动给密码加上MD5,然后再传输到服务器。这样即使密码被嗅探到了,也是加密后的密码。

    先看代码:

     1 <script>
     2 functionMD5(){
     3 //MD5加密算法,细节省略
     4 }
     5  
     6 functioncheck(){
     7 //提交前将用户的密码用MD5加密
     8 form.password.value=MD5(form.password.value);
     9 returntrue;
    10 }
    11 </script>
    12 <form onsubmit="return check();">
    13 用户名:<input type="text"name="username"><br>
    14 密码:<input type="password"name="password"><br>
    15 <input type="submit"value="提交">
    16 </form>
     

    假设浏览器已经开启了保存密码功能,用户在输完账号密码并提交后,点击保存密码。在这一过程中,主要发生了如下几个事件:

    用户填写用户名密码 → 点击提交 → 触发check() → 将密码输入框的密码MD5加密 → 将数据提交到服务器

    我们的浏览器是在哪一步记录了密码呢?

    第二步,在点击提交按钮时,浏览器抓取了输入框的值,并保存下来,而后面发生的事情,它并不关心。 那么我们下次登录时,会发现密码输入框仍然是明文密码(虽然我们看不到,但可以通过密码长度判断)。

    但是,只有在360浏览器中,保存的密码是长长的32位MD5加密后的密码。也就是说,360浏览器并不是在用户点击提交后记录输入框的内容,而是在最后一步,将数据提交到服务器时,360浏览器截取了这部分数据,并保存下来。

    因为密码存在用户自己电脑上,并且不容易查看,所以从安全性考虑,不管保存明文还是密文,没什么区别。但是从保存密码的方式来看,360通过截取用户数据来记录密码,实在太流氓了。

    91ri.org:文章写的很清楚了 就不说了

    link:http://www.zyday.com/archives/567.html

  • 相关阅读:
    彻底卸载MySql
    MySql和SQL Server数据类型 对比
    easyui combobox 中实现 checkbox
    浅谈研发项目经理
    软件公司项目经理岗位职责
    input text 的事件及方法
    c#解析HTML
    SQL SERVER 数据库查询表和字段信息语句
    Silverlight动态载入调用XAML资源
    几种设计模式简介(转载)
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/7160019.html
Copyright © 2020-2023  润新知