V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
poorcai
V2EX  ›  分享发现

Stack Overflow 明文密码?

  •  
  •   poorcai · 2018-06-29 13:46:47 +08:00 · 7577 次点击
    这是一个创建于 2333 天前的主题,其中的信息可能已经有所发展或是发生改变。

    登陆的时候没事,F12 看了下,竟然发现了表单输入的邮箱和密码?不加密的吗?

    是我的姿势不对,还是真的发现了问题?

    stack.png

    60 条回复    2018-07-01 14:05:16 +08:00
    runnerlee
        1
    runnerlee  
       2018-06-29 13:50:26 +08:00
    有 https 啦
    poorcai
        2
    poorcai  
    OP
       2018-06-29 13:51:32 +08:00
    @runnerlee #1 HTTPS 也不应该明文密码提交吧?是我没搞懂么?
    jarnanchen
        3
    jarnanchen  
       2018-06-29 13:51:41 +08:00 via Android
    没问题,前端加密没有意义啊
    chinvo
        4
    chinvo  
       2018-06-29 13:53:14 +08:00 via iPhone   ❤️ 1
    没问题

    传输安全性由 HTTPS 保证

    JS 加密没意义

    至于其他可能,你看国内一票一点都不安全的“安全控件”
    chinvo
        5
    chinvo  
       2018-06-29 13:53:35 +08:00 via iPhone
    jecshcier
        6
    jecshcier  
       2018-06-29 13:54:09 +08:00 via iPhone   ❤️ 3
    @poorcai 你的密码只有你能看到。https 协议的非对称加密,没事的。前端加密没太大意义,如果是 http,再怎么加密,重放一波就行了。。
    poorcai
        7
    poorcai  
    OP
       2018-06-29 13:54:26 +08:00
    @jarnanchen #3
    @chinvo #4
    好吧,是我大惊小怪了
    runnerlee
        8
    runnerlee  
       2018-06-29 14:04:22 +08:00
    不过能不能这样, 假如密码的哈希用这样来创建: md5(md5(password) + salt)

    然后让前端处理 h1 = md5(password), 后端处理 md5(h1 + salt)

    这样就算被抓包也没关系了?
    yanaraika
        9
    yanaraika  
       2018-06-29 14:07:11 +08:00   ❤️ 1
    @runnerlee 不能处理重放。你魔改出一个可以处理重放的版本就是 tls
    footoredo
        10
    footoredo  
       2018-06-29 14:07:19 +08:00 via iPhone
    @runnerlee https 抓包也看不到内容,而且 md5 已经过时了
    closedevice
        11
    closedevice  
       2018-06-29 14:08:28 +08:00
    问题不大~
    runnerlee
        12
    runnerlee  
       2018-06-29 14:13:19 +08:00
    @yanaraika 也是, 学习了! 还从来没想过重放的问题.
    wxsm
        13
    wxsm  
       2018-06-29 14:24:47 +08:00   ❤️ 2
    年轻人不要总想搞大新闻,先提高姿势水平
    poorcai
        14
    poorcai  
    OP
       2018-06-29 14:27:12 +08:00
    @wxsm #13 哼
    poorcai
        15
    poorcai  
    OP
       2018-06-29 14:27:42 +08:00
    @runnerlee #8
    @yanaraika #9
    @footoredo #10
    @closedevice #11
    @wxsm #13
    感谢各位大佬
    Kilerd
        16
    Kilerd  
       2018-06-29 14:43:39 +08:00   ❤️ 1
    请重修密码学

    @runnerlee 你这个做法只是让别人「看不到」你的原始密码。但是对于服务器来说,你的「 Password 」只是变成了「 MD5(Password)」 ,该入侵的还是入侵,预期在这个地方折腾,还不如老老实实做好服务器方向的保护
    whoami9894
        17
    whoami9894  
       2018-06-29 16:07:44 +08:00 via Android
    我们教务系统是 http,然后用了 rsa 加密登录密码
    throns
        18
    throns  
       2018-06-29 16:13:12 +08:00 via Android
    @whoami9894 我们学校也是,一登录表单就变成加密过后的,chrome 保存以后自动填充是加密过后的,每次都要重新输过,贼傻逼
    whoami9894
        19
    whoami9894  
       2018-06-29 16:13:30 +08:00 via Android
    @whoami9894
    不过有时间戳参数
    throns
        20
    throns  
       2018-06-29 16:13:44 +08:00 via Android
    @whoami9894 不过我们上 https 了
    whoami9894
        21
    whoami9894  
       2018-06-29 16:15:12 +08:00 via Android
    @throns
    还有这种操作,浏览器保存的不应该是前端表单的输入吗
    Alphabetcn
        22
    Alphabetcn  
       2018-06-29 16:28:15 +08:00 via Android
    @throns 可以手动 edit,需 flags 里开启
    johnniang
        23
    johnniang  
       2018-06-29 16:30:36 +08:00 via Android   ❤️ 1
    这个很正常啊。你和服务器之间的传输是安全的。服务器会加密好你的密码的。
    shyrock
        24
    shyrock  
       2018-06-29 16:37:06 +08:00   ❤️ 1
    服务器端保护、链路保护上面各位大佬都说过了。
    但是,客户端直接能显示密码明文真的没问题吗?
    如果你暂时离开座位,其他同事过来按 F12 怎么办?为什么各种密码输入框都要设计为输入时统一显示成黑点,而且不准从密码框拷贝,这不就是认为客户端的密码明文也不能被随意访问吗。
    jedrek
        25
    jedrek  
       2018-06-29 16:55:30 +08:00
    @shyrock 设备都被控制了,加密和不加密也没什么区别了。
    暂时离开座位正确做法是锁屏,这是使用者的问题,真不是需要加密来解决
    qinxi
        26
    qinxi  
       2018-06-29 17:01:22 +08:00
    @shyrock 真的有问题吗. 都物理接管你电脑了,还谈屁安全

    人才是安全环节最脆弱的一环
    poorcai
        27
    poorcai  
    OP
       2018-06-29 17:02:14 +08:00
    @shyrock #24 我就是想表达你这个意思
    misaka19000
        28
    misaka19000  
       2018-06-29 17:13:23 +08:00 via Android
    @shyrock 设备都被攻破了还谈什么安全,那别人还可以在我不在的时候在我电脑上面种病毒呢,那是不是键盘也该加个密啊?
    runnerlee
        29
    runnerlee  
       2018-06-29 17:34:55 +08:00
    @Kilerd

    抱歉没学过 😅见笑了, 我本来的想法比较中二, 注册的时候前端 md5, 然后登录的时候不用 md5. 这么一说才想起来能在注册的时候看到那在登录的时候也能看到, 哈哈哈, 见笑了见笑了
    seancheer
        30
    seancheer  
       2018-06-29 18:54:16 +08:00   ❤️ 1
    @shyrock chrome,打开设置 -> 高级 -> 密码和表单 -> 管理密码,你可以看到所有你在网页上保存过得密码,而且是明文哦。。这个还不需要知道一丁点儿前端调试的知识。

    不只是 chrome,目前浏览器如 firefox 也是这样的。。其他的因为不怎么用,没试验过。

    这么设计的理由和上面解释的一样:别人都物理接触到你的机器了,在怎样的防护都没有什么用。
    throns
        31
    throns  
       2018-06-29 19:02:59 +08:00 via Android
    @seancheer 要查看,似乎还得输入你 Google 账户的密码,不过,有软件可以直接看,我同学前几天用了,说真牛逼。
    powerfj
        32
    powerfj  
       2018-06-29 19:08:16 +08:00
    从安全角度来说, 用户原始密码最好不要给到服务器, 风险较大.
    shyrock
        33
    shyrock  
       2018-06-29 19:19:50 +08:00
    @jedrek @qinxi @misaka19000 @seancheer 以苹果手机为例,就算别人指纹解锁后把手机拿给你用,你也无从知道密码。从而保证你不能在锁屏后重新解锁,更不可能用这个密码去尝试其他网站。这显然是一个更安全的做法。
    chinvo
        34
    chinvo  
       2018-06-29 19:38:05 +08:00 via iPhone   ❤️ 2
    @shyrock #33 每次要加盐、nonce、签名

    恭喜你重新发明 HTTPS
    lalala121
        35
    lalala121  
       2018-06-29 19:40:55 +08:00   ❤️ 1
    哈哈哈哈,菜鸡
    blankme
        36
    blankme  
       2018-06-29 19:50:36 +08:00 via Android
    @shyrock
    如果你能解锁苹果手机,你就能看到系统保存的一系列网站明文密码。如果你能解锁 Windows,你也能看到 chrome 里的密码。在查看密码前要求你再次输入解锁设备的信息。

    你解锁完手机给别人玩,和你输入电脑密码后给别人玩,两者的逻辑是一样的。
    agagega
        37
    agagega  
       2018-06-29 19:51:54 +08:00 via iPhone
    你前端散列了也没法阻止重放啊。这种情况下密码发过去后端搞起来方便点
    laoyur
        38
    laoyur  
       2018-06-29 20:03:16 +08:00
    这个话题本站论战过数回了
    iwtbauh
        39
    iwtbauh  
       2018-06-29 20:09:20 +08:00 via Android
    @seancheer #30
    浏览器不是直接把密码存在硬盘上的,而是存在系统的“钥匙串”中的(例如 Linux gnome 下这个功能由 gnome-keyring 实现,kde 下由 KDE Wallet 实现)系统钥匙串由用户密码加密,所以即使物理接触,别人没有你的用户密码也没辙的。
    DOLLOR
        40
    DOLLOR  
       2018-06-29 20:12:56 +08:00 via Android
    @shyrock
    不想让人窥视密码,你离开前应该锁屏,这跟你用手机的逻辑是一样的。
    seancheer
        41
    seancheer  
       2018-06-29 21:48:47 +08:00
    @throns 好吧,我落伍了。。16 年还是 17 年以前的版本是可以不输入账户密码直接查看的。。刚刚我试了下,已经改成要输入账户密码了。。。
    cxh116
        42
    cxh116  
       2018-06-29 21:55:50 +08:00 via Android
    不上 https,再 nb 的安全加密也没用,直接注入 js 网页输入。
    wangxiaoaer
        43
    wangxiaoaer  
       2018-06-29 22:01:10 +08:00
    @shyrock #24 按 F12 ? 你输入密码 点击提交,然后离开座位,别人立马打开 F12,正好看到传输的数据,这种情况有多巧你知道吗?
    chocotan
        44
    chocotan  
       2018-06-29 22:04:39 +08:00
    @throns linux 版 chromium 表示直接就能看密码了
    Tianao
        45
    Tianao  
       2018-06-29 22:13:25 +08:00 via iPhone
    @throns 😂你们学校是不是正方的?
    yangqi
        46
    yangqi  
       2018-06-29 22:16:25 +08:00
    @seancheer 所以从来不用浏览器自带的密码管理,万一种个病毒或者木马所有密码就完了。
    throns
        47
    throns  
       2018-06-29 22:47:08 +08:00 via Android
    @Tianao 是的
    E0
        48
    E0  
       2018-06-30 01:00:26 +08:00 via Android
    github 也是明文
    breeswish
        49
    breeswish  
       2018-06-30 01:08:31 +08:00
    @shyrock 前端哈希了也没用啊。别人也不需要进入那个 Chrome Password 页面。直接在 StackOverflow 页面利用自动填密码把密码填进去,然后不需要递交,直接 F12,$0.value 就可以看到密码了。
    WildCat
        50
    WildCat  
       2018-06-30 01:08:44 +08:00 via iPhone
    @shyrock 一点安全常识都没有,建议去读读《白帽子讲 Web 安全》
    hlwjia
        51
    hlwjia  
       2018-06-30 01:23:28 +08:00 via iPhone
    @powerfj 我比较想听听这位大兄弟的看法
    johnnie502
        52
    johnnie502  
       2018-06-30 03:22:31 +08:00
    @shyrock 别人都到你电脑面前了还担心什么密码泄露问题。chrome 打开你的表单,直接把<input type="password" 改成 type="text",黑点立刻便明文,提交都不用啊
    Greatshu
        53
    Greatshu  
       2018-06-30 04:03:37 +08:00
    @shyrock #24 为什么要 F12,直接装个木马更方便
    opengps
        54
    opengps  
       2018-06-30 07:42:32 +08:00 via Android   ❤️ 1
    你这么测试的话,几乎 90%都是明文密码,另外 9%是前台加密,还有 1%是 u 顿之类的
    https 只保证传输过程,不负责前台后台安全
    Mutoo
        55
    Mutoo  
       2018-06-30 07:57:31 +08:00
    还记得 twitter 服务器把密码明文打到日志系统里面么。
    F0nebula
        56
    F0nebula  
       2018-06-30 10:17:53 +08:00
    @seancheer #30 Firefox 可以使用「主密码」
    flyingfz
        57
    flyingfz  
       2018-06-30 15:55:34 +08:00
    这个密码 是你能看到, 别人看不到。
    别人看到的是 https(加密过)的流量,而你用控制台,相当于 https 已经解密了
    Vhc001
        58
    Vhc001  
       2018-06-30 23:26:11 +08:00
    @Mutoo #55 不是明文。不要造谣。
    msg7086
        59
    msg7086  
       2018-07-01 05:02:10 +08:00   ❤️ 1
    @Vhc001 神™推特自己造自己的谣。

    Twitter Support ‏认证账号
    We recently found a bug that stored passwords unmasked in an internal log. We fixed the bug and have no indication of a breach or misuse by anyone. As a precaution, consider changing your password on all services where you ’ ve used this password.
    下午 1:04 - 2018 年 5 月 3 日
    iyangyuan
        60
    iyangyuan  
       2018-07-01 14:05:16 +08:00 via iPhone
    前端的加密只是掩耳盗铃,https 保证的是传输安全,所以没问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   930 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:34 · PVG 06:34 · LAX 14:34 · JFK 17:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.