Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 起始页检查客户端散列的密码是否安全?_Security_Encryption_Hash_Client Side - Fatal编程技术网

Security 起始页检查客户端散列的密码是否安全?

Security 起始页检查客户端散列的密码是否安全?,security,encryption,hash,client-side,Security,Encryption,Hash,Client Side,启动web应用程序通过javascript对照硬编码哈希密码检查密码是否安全 i、 e: 攻击者是否有办法找到与条件匹配的密码/找到管理员路径网页?(www.sample.com/realpassword)不,它不安全。客户端验证永远都不安全。以下是一些原因: 你正在发布散列。这意味着攻击者知道密码何时已更改(或未更改),可以脱机破解密码,而不是尝试攻击服务本身 MD5不应再用于密码。它很弱,有已知的问题,与所有其他散列相比,破解起来微不足道。我可以直接用谷歌搜索这个散列并获取你的密码(coli

启动web应用程序通过javascript对照硬编码哈希密码检查密码是否安全

i、 e:


攻击者是否有办法找到与条件匹配的密码/找到管理员路径网页?(www.sample.com/realpassword

不,它不安全。客户端验证永远都不安全。以下是一些原因:

  • 你正在发布散列。这意味着攻击者知道密码何时已更改(或未更改),可以脱机破解密码,而不是尝试攻击服务本身

  • MD5不应再用于密码。它很弱,有已知的问题,与所有其他散列相比,破解起来微不足道。我可以直接用谷歌搜索这个散列并获取你的密码(colibri)

  • 您正在将密码作为URL路由的一部分。这可能会带来新的弱点。例如,如果我可以强制您的服务出错并转储一些有关路由不匹配的信息。或者,如果路由匹配代码允许定时攻击来发现可能的路由

  • URL中的密码将保存在浏览器历史记录中,而表单密码可由用户控制。这允许任何有权访问您的浏览历史记录的人获取它

  • 密码现在是服务路由的一部分,这意味着人们将复制/粘贴它,并可能在其他地方公开它。甚至可能是谷歌索引的地方

  • 将会有更多的可能性。。。不要这样做


  • 不,这不安全。客户端验证永远都不安全。以下是一些原因:

  • 你正在发布散列。这意味着攻击者知道密码何时已更改(或未更改),可以脱机破解密码,而不是尝试攻击服务本身

  • MD5不应再用于密码。它很弱,有已知的问题,与所有其他散列相比,破解起来微不足道。我可以直接用谷歌搜索这个散列并获取你的密码(colibri)

  • 您正在将密码作为URL路由的一部分。这可能会带来新的弱点。例如,如果我可以强制您的服务出错并转储一些有关路由不匹配的信息。或者,如果路由匹配代码允许定时攻击来发现可能的路由

  • URL中的密码将保存在浏览器历史记录中,而表单密码可由用户控制。这允许任何有权访问您的浏览历史记录的人获取它

  • 密码现在是服务路由的一部分,这意味着人们将复制/粘贴它,并可能在其他地方公开它。甚至可能是谷歌索引的地方

  • 将会有更多的可能性。。。不要这样做


  • 在起始页中检查密码哈希似乎不是一个好主意

    就这一点而言,更安全的身份验证协议通常会跳过许多障碍,以确保这种重放攻击无法工作,通常是通过允许客户端选择一组随机位,这些位与密码一起散列,并以明文形式提交给服务器

    在服务器上:

    • 生成一些随机数据
    • 将这些位(以明文形式)发送到客户端
    在客户机上:

    • 生成一些随机位
    • 连接密码、服务器的随机位和客户端的随机位 比特
    • 生成上面的哈希
    • 向服务器提交随机数据(明文)和散列
    由于服务器知道自己的随机信息以及客户机的随机位(它以明文的形式获取),因此它可以执行基本相同的转换。该协议确保,在此对话中侦听的任何人都不能在以后使用记录的信息(除非使用了非常弱的算法…)使用该信息进行错误身份验证,只要双方每次生成不同的“噪声位”,就会执行握手


    如果我是你,我会读两遍,似乎在起始页检查密码哈希是个坏主意

    就这一点而言,更安全的身份验证协议通常会跳过许多障碍,以确保这种重放攻击无法工作,通常是通过允许客户端选择一组随机位,这些位与密码一起散列,并以明文形式提交给服务器

    在服务器上:

    • 生成一些随机数据
    • 将这些位(以明文形式)发送到客户端
    在客户机上:

    • 生成一些随机位
    • 连接密码、服务器的随机位和客户端的随机位 比特
    • 生成上面的哈希
    • 向服务器提交随机数据(明文)和散列
    由于服务器知道自己的随机信息以及客户机的随机位(它以明文的形式获取),因此它可以执行基本相同的转换。该协议确保,在此对话中侦听的任何人都不能在以后使用记录的信息(除非使用了非常弱的算法…)使用该信息进行错误身份验证,只要双方每次生成不同的“噪声位”,就会执行握手


    如果我是你,我会读两遍

    这是你为什么不发明你自己的安全性的又一个例子——业余爱好者几乎不可能做到正确。这是你为什么不发明你自己的安全性的又一个例子——业余爱好者几乎不可能做到正确。你所描述的是一个糟糕的摘要认证。有一些额外的元素通常用于使其更安全。如果有人真的想实现它,那就是修正性阅读。(作为背景)(它仍然是一个旧的,不太安全的机械装置
    if (md5HashFunction(password) === '4c98fecb7fdbf0c3b848f95c92c3402e') {
        alert('you are admin');
        window.location.href=window.location.href+'/'+password;
    }