zoukankan      html  css  js  c++  java
  • 谈谈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

  • 相关阅读:
    什么是webview
    juqery.fn.extend和jquery.extend
    LeetCode
    5. Longest Palindromic Substring
    42. Trapping Rain Water
    11. Container With Most Water
    621. Task Scheduler
    49. Group Anagrams
    739. Daily Temperatures
    3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/yanduanduan/p/7160019.html
Copyright © 2011-2022 走看看