繁体   English   中英

在没有HTTPS的情况下在PHP和MySQL中创建安全的登录脚本

[英]Creating a secure login script in PHP and MySQL without HTTPS

这篇文章在WikiHow上是一个很好的参考,在PHP和MySQL中创建一个安全的登录脚本? 在警告部分,作者强调该代码只能与HTTPS一起使用。 我无法使用HTTPS,但需要在PHP和MySQL中实现相对安全的登录脚本,因此想知道脚本是否也可以为HTTP连接实现。

解决了

第三方解决方案是在PHP和MySQL中创建安全登录脚本的最佳解决方案。 functionality) can be avoided. 通过利用PHP框架(例如Symfony,uLogin)或外部各方(例如Facebook,Google),可以避免创建全新的工作登录脚本和授权( 功能)的需要。 如果其他人已经进行了彻底的研究并获得了创建登录功能的经验,那么使用他们的工作会更加安全和容易。

虽然您可以自己创建登录系统,但强烈建议让外部各方为您执行此操作。

要想做到这一点需要很多经验,而且经常做错了。

虽然本教程看起来没问题,但是有很多因素需要考虑,而且它似乎也是半岁的。 PHP 5.5提供了password_hashpassword_verify ,我推荐你的页面建议。

所以,如果你必须建立自己的系统; 考虑使用上述功能,如果你只限于较低的php版本,则可以使用5.3.7版本的反向端口

如果你没有做你自己的系统 ,利用外部各方(谷歌,Facebook)来处理在你的日志,或使用具有框架的认证支持

所以在它的一般要点:不要试图自己做,利用其他人提供多年经验的东西。 因为要做到这一点非常困难。

此脚本在其浏览器中安全地加密用户输入的密码,并在表单提交之前清除明文密码字段,因此任何第三方都无法读取密码。 在这种程度上,脚本可以通过HTTP安全使用。

但是,表单的其余部分 - 用户的姓名,电子邮件地址等 - 不会安全发送,因此第三方(例如中间的人 )只需通过阅读他/她(未加密)即可识别用户表格发送的个人身份信息。 这不仅会使您的用户容易受到攻击,而且对用户数据的不安全处理可能会使您的雇主/客户面临法律风险,以防数据遭到嗅探/入侵/被盗。

还有一个真正的风险是,中间人可以拦截传输的数据并在托管脚本的服务器收到之前对其进行修改。 HTTPS / SSL不仅可以保护密码,还可以确保没有数据被篡改。

正如Zarthus所说,最好的做法是采用第三方解决方案,特别是如果你不能为你提供HTTPS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM