如何使用 vue 或 javascript 向服务器发送密码?
Posted
技术标签:
【中文标题】如何使用 vue 或 javascript 向服务器发送密码?【英文标题】:How to send password to server using vue or javascript? 【发布时间】:2018-01-19 13:48:27 【问题描述】:我已经创建了用于登录和注册的 vue 组件。如何将密码发送到服务器?我应该在客户端使用 bcrypt
加密密码,然后将其发送到 Laravel 还是应该将纯密码发送到 Laravel 并使用 bcrypt($request->get('password'));
什么是一个好的选择?
如果我应该在 vue 组件中加密密码,我应该使用什么包/函数才能像 Laravel/php 一样加密密码??
【问题讨论】:
1.你散列密码,你不加密它们。 2. 发送哈希而不是密码几乎没有安全优势,因为中间人攻击仍然可以获得他们登录所需的信息。 3. 使用 https 来保护传输中的密码。 【参考方案1】:需要在客户端加密密码!
不加密用户密码意味着它容易受到 MITM 攻击 SSL 终止经常发生在负载平衡器上,这意味着纯文本密码从该点传输到您的 Web 服务器不受保护,系统管理员等可以启用日志记录。 开发人员或系统管理员不应该获得用户的密码,如果您不在客户端加密密码就会发生这种情况【讨论】:
您能进一步解释一下吗?我不明白,例如,如果服务器使用 HTTPS 并且仅启用 HTTPS 协议(不允许仅使用 HTTP),为什么密码容易受到 MITM 攻击?你可以争辩说 HTTPS 不是特别是强加密,但我觉得那是另一个论点。 假设 HTTPS 足够强大,中间人攻击是如何发生的?我真的不明白。【参考方案2】:实际上并不需要在您的 javascript 代码中加密密码。在 HTTPS 服务器上提供 PHP 服务更为重要。
浏览器和您的网络服务器之间发送的数据将由 SSL/TLS 证书加密。
这里有一些设置启用 HTTPS 的 Web 服务器的指南,我假设您的 php 托管在 nginx 或 Apache 上,带有 php-fpm 或 apache php 模块。
通过letsencrypt,它为您的网络服务器提供免费的 SSL/TLS 证书,以保护客户端浏览器与其自身之间的通信。
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04 https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04【讨论】:
所以我可以在使用 axios 后发送我的密码吗?? 对,请确保您已将端口 80 上的普通 HTTP 转发/重定向到 Web 服务器上的 HTTPS 端口 443,这样用户就不会意外使用 HTTP(不安全)发送登录信息以上是关于如何使用 vue 或 javascript 向服务器发送密码?的主要内容,如果未能解决你的问题,请参考以下文章
如何向组件 vue.js 发送两个或多个参数? (vue.js 2)