以安全的方式将密码从 Javascript 传递到 PHP
Passing password from Javascript to PHP in a secured way
我正在尝试使用 MVC 开发网站。
我有我的 HTML 表单(视图),一个在按下 "submit" 时调用的 js 控制器,然后我需要将数据(包括密码)传递到 php 文件(模型),其中密码将被散列、加盐并保存在数据库中。
我不确定我这样做的方式是否正确。是否可以以安全的方式将值从我的 js 文件传递到 php 文件?
通过它的唯一安全方式是使用安全线路。这意味着托管表单的页面必须在 HTTPS 上提供服务。您要提交的页面也应该是 HTTPS。
从客户端散列密码没有意义。
(1) Browser | (2) Network | (3) Server
| |
password -(md5)-> hash | -(network)-> | server
攻击者不会知道原始密码,但这并不重要。服务器想要的只是哈希。哈希本质上已成为密码。如果没有 SSL,攻击者可以简单地嗅探 (2) 中的哈希值,然后将来自 (2) 的请求直接重播到服务器。服务器甚至不知道它是伪造的。
您可以通过创建和自签名您自己的 SSL 证书来启用 HTTPS(即,您不必为证书向证书颁发机构付费,完全免费的选项)。当您访问该站点时,您的浏览器会警告您该站点不安全,因为证书不会由受信任的机构签署,但连接仍会被加密。
这里是关于 generating/self 签署您自己的 SSL 证书的相关 question/answer:
How to create a self-signed certificate with openssl?
由于ajax post 请求在技术上与post 表单提交相同,因此它们处于同一逻辑级别。没有什么可以保护您免于在浏览器中破坏您的加密,所以,基本上,这样做是没有意义的(您不加密您的普通表单数据,是吗?)。
首先,您需要了解您要避免的危险是什么。很可能是 network traffic interception. You're still using HTTP so all methods are the same. You need to use traffic encryption via SSL.
注意:HTTPS 无法保护您免于直接从用户 PC 窃取数据(例如间谍软件)。
请阅读更多关于 HTTP 漏洞的信息以获得更多线索。看来您缺少一些关于这一切如何运作的理论基础知识。
我正在尝试使用 MVC 开发网站。 我有我的 HTML 表单(视图),一个在按下 "submit" 时调用的 js 控制器,然后我需要将数据(包括密码)传递到 php 文件(模型),其中密码将被散列、加盐并保存在数据库中。
我不确定我这样做的方式是否正确。是否可以以安全的方式将值从我的 js 文件传递到 php 文件?
通过它的唯一安全方式是使用安全线路。这意味着托管表单的页面必须在 HTTPS 上提供服务。您要提交的页面也应该是 HTTPS。
从客户端散列密码没有意义。
(1) Browser | (2) Network | (3) Server
| |
password -(md5)-> hash | -(network)-> | server
攻击者不会知道原始密码,但这并不重要。服务器想要的只是哈希。哈希本质上已成为密码。如果没有 SSL,攻击者可以简单地嗅探 (2) 中的哈希值,然后将来自 (2) 的请求直接重播到服务器。服务器甚至不知道它是伪造的。
您可以通过创建和自签名您自己的 SSL 证书来启用 HTTPS(即,您不必为证书向证书颁发机构付费,完全免费的选项)。当您访问该站点时,您的浏览器会警告您该站点不安全,因为证书不会由受信任的机构签署,但连接仍会被加密。
这里是关于 generating/self 签署您自己的 SSL 证书的相关 question/answer: How to create a self-signed certificate with openssl?
由于ajax post 请求在技术上与post 表单提交相同,因此它们处于同一逻辑级别。没有什么可以保护您免于在浏览器中破坏您的加密,所以,基本上,这样做是没有意义的(您不加密您的普通表单数据,是吗?)。
首先,您需要了解您要避免的危险是什么。很可能是 network traffic interception. You're still using HTTP so all methods are the same. You need to use traffic encryption via SSL.
注意:HTTPS 无法保护您免于直接从用户 PC 窃取数据(例如间谍软件)。
请阅读更多关于 HTTP 漏洞的信息以获得更多线索。看来您缺少一些关于这一切如何运作的理论基础知识。