gpt4 book ai didi

javascript - Password_hash() 提交前需要预哈希吗?

转载 作者:行者123 更新时间:2023-11-29 19:30:33 24 4
gpt4 key购买 nike

我正在使用 PHP 5.5+ password_hash() 函数在将密码存储到数据库之前对其进行哈希处理。到目前为止一切顺利。

我有点不确定的是,是否需要对从表单发送到我的 PHP 脚本的密码进行预散列处理。

现在表单提交过程(简而言之)是这样完成的:

  1. 包含表单的 HTML 文件调用表单 method=".."中的 Controller 脚本 ->
  2. Controller 脚本接收调用并选择正确的函数 ->
  3. 函数执行和存储到数据库。

所以基本上调用是通过三个文件从提交到存储发送的。

我在想,由于散列是在第三个也是最后一个文件中完成的,所以数据可能会被劫持并以清晰的 View 显示出来。

我是否应该担心并在初始提交表单期间以某种方式使用一些 JavaScript 对密码进行哈希处理,还是安全?最终站点很可能会使用 SSL 证书,但我仍然不能 100% 确定我是否安全。

最佳答案

您对劫持 Controller 之间密码的担忧是多余的:

当密码在不同 Controller 之间传递时,攻击者要劫持密码,这意味着攻击者必须能够读取 PHP 进程的内存,这需要 root 权限。如果攻击者拥有 root 权限,那么你的问题就更大了,你的解决方案也救不了你,因为同一个攻击者也可以修改 PHP 文件来移除你的“保护”。

至于在密码通过 Internet 传输时劫持密码,唯一的解决方案是使用 HTTPS - 无论您做什么 Javascript 加密/散列都是毫无意义的,因为窃听者还可以在传输页面时更改页面并提供服务它的修改版本没有您添加的额外“安全性”;关于在 Security.SE 上尝试保护没有 HTTPS 的登录表单有很多问题,查看它们:

关于javascript - Password_hash() 提交前需要预哈希吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27880127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com