2011-02-23 61 views
6

我正在开发网站,其中用户使用ajax,php和使用POST方法提交凭据 ,我想保护登录凭证不是纯文本但我不想使用SSL 我可以在不使用SSL证书的情况下保护密码凭证??如何在不使用SSL的情况下保护POST方法?

任何人都可以给我任何方法的工作示例吗?

+0

我可以在没有购买的情况下在php中实现SSL证书吗? – 2011-02-23 09:28:48

+0

是的,你可以。 。例如通过http://startssl.com/他们有免费的基本证书。 – 2011-02-23 10:18:58

回答

6

如果没有某些通道外验证(SSL提供),则无法完全保护证书;一个man in the middle attack将永远是可能的。

简而言之,客户端无法完全确定他们正在与服务器交谈,而不是在两者之间插入虚假服务器。

1

总之..没有。

你可以尝试,但我不认为有一种方法,我可以想象在JavaScript或任何其他浏览器内的方式来保护您的发布的数据。

问题是在加密方面,在javascript中做一个好的公共 - 私人加密对我来说听起来不太可行。

我也很好奇为什么部分。 。

。 。仍在思考一些可能的方法。 。如果有东西弹出,会更新。

+2

即使是最好的JavaScript实现也是脆弱的:执行加密的脚本可能会被篡改,因为它是通过非安全线路发送的。这就是为什么在JavaScript中实现SRP协议时无法保证安全的原因。 – Jacco 2011-02-23 10:10:41

0

应该可以使用没有证书的SSL。使您容易受到中间人攻击,但会加密传输的数据。

+0

这会导致流量消失,因为浏览器将始终显示证书警告。最有可能会要求用户确认他确实想继续访问该网站。 – 2011-02-23 09:42:27

+0

真实,真实......但问题是,有点安全的加密有什么意义: -/... str_rot13怎么样? – Raffael 2011-02-23 09:52:07

+0

有两种安全性:那种让你的小妹妹不知道你的秘密的东西,还有一种让市长政府不在的东西。换句话说:要么你有一个强大而安全的系统,要么等待发生。换句话说:没有这种“有点安全的加密”。 ROT13?这甚至不想保证安全,这是一个方便的混淆程序。 – Jacco 2011-02-23 10:46:18

2

您可以使用像OpenID这样的提供商为您处理身份验证。供应商使用SSL来验证凭证,然后您可以使用他们的API对其进行验证,因此用户从不真正向凭证发送凭证。

Getting started with OpenID

+0

除非你只使用HTTPS,否则你只是交易会话劫持的密码嗅探 - 你在安全性方面没有任何好处。 – Zed 2011-02-23 14:39:52

+0

这并非完全正确。会话ID可以映射到IP地址,这将使劫持更加困难。它也使得攻击不可重复(除非攻击者愿意永远保持会话持续)。 – 2011-02-23 16:02:16

+0

劫机者经常在同一网络(同一所学校,同一家旅馆,同一家咖啡馆),因为嗅探当地的交通是最容易的。而当你在同一个网络上时,使用受害者的IP也是微不足道的。另外,当网络正好在NAT后面,并且你们都共享一个IP(由于IPv4地址短缺,这些日子很常见),那么你甚至不需要改变你的IP。不要以为改变IP地址很难,因为通常情况下不是,特别是如果你想要的地址在同一个子网中。 – Zed 2011-02-23 23:40:40

相关问题