为了账号安全,请及时绑定邮箱和手机立即绑定

不使用HTTPS登录,如何确保安全?

/ 猿问

不使用HTTPS登录,如何确保安全?

慕用2447696 2019-11-25 15:29:06

对于Web应用程序,当HTTPS不能用作安全措施时,是否仍可以使登录保持一定的安全性?例如:

  • 标记登录名,使重复攻击变得困难?

  • 以某种方式从HTML密码字段加密发送的密码?

特别是,我使用CakePHP和AJAX POST调用来触发身份验证(包括提供的用户名和密码)。

有关问题的更新:

  • HTTPS不可用。期。如果您不喜欢这种情况,请将其视为理论问题。

  • 没有明确的要求,您拥有现实生活中提供的任何HTTP,PHP和浏览器(cookie,JavaScript等)(没有魔术RSA二进制文件,PGP插件)。

  • 问题是,什么是最好的,您可以解决这种情况,这比发送密码明文更好。知道每种这样的解决方案的缺点是一个加号。

  • 任何比普通密码更好的改进都是值得欢迎的。我们的目标不是100%l33tG0Dhx0r-proff解决方案。破解起来比破解复杂要好,这要比泄露密码的琐碎嗅探要好。


查看完整描述

3 回答

?
呼如林

由于您不能在Web服务器上执行SSL,并且您不是安全专家,因此请寻找可利用的现有安全身份验证服务,并让它们为您处理SSL和处理凭据的复杂性。


特别是,我建议您使用免费的第三方身份验证服务,例如OpenID。他们有用于PHP的库,其中包括一个用于CakePHP的库。


编辑:(关于风险)


虽然使用第三方安全身份验证服务(本身使用HTTPS)可以缓解不使用HTTPS(在您的服务器上)而进行身份验证的问题,但不能完全消除受到攻击的可能性。


最常见的两种攻击是重播攻击和会话劫持,攻击者可以在以后重新使用真正的登录会话令牌,或者将有效的会话令牌用于自己的恶意目的。


重播攻击可以通过使会话令牌到期而减轻,并且最好通过使用随机数来防止会话重播并降低会话劫持的风险。对于随机数,如果成功劫持,则合法会话会生成错误,因为随机数已过期(已使用),因此其自己的会话不再有效。


如果在与服务器之间进行传输时无法使用HTTPS加密会话令牌,则无法完全阻止主动攻击,例如会话劫持或中间人攻击。在某些情况下(例如,非商业用途的用户群较小的网站),这可能是可以接受的。


查看完整回答
反对 回复 2019-11-25
?
皈依舞

简短的答案是,如果没有SSL端点到端点的加密,就不可能安全地进行加密...


这样做的主要原因之一是您无法在浏览器中进行安全加密。请参阅此参考-Javascript密码术被认为有害。


此外,您无法确定凭据的来源确实是您正在与之交谈的人。这意味着没有SSL绝对不可能确保不会发生中间人攻击。


所以不,你做不到。


此外,甚至不要尝试。获取SSL。您可以获得免费证书。主机通常会为您提供专用IP,每月只需几美元。而且,如果您真的关心安全性,那么至少要使用具有专用IP地址的VM。


甚至尝试这样做,充其量不过是通过模糊实现安全,而在最坏情况下则没有。SSL是一个已解决的问题。为什么不使用该解决方案。安全性不是猜测。使用适当的技术。不要试图发明自己的。那行不通...


查看完整回答
反对 回复 2019-11-25

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信