如何改进HTTP基本身份验证?

时间:2011-02-18 07:36:03

标签: zend-framework authentication http-authentication

我目前正在开发基于Zend Framework的API网站。由于ZF对摘要式身份验证没有足够的支持,现在转移到另一个框架为时已晚,我正在考虑实现基本身份验证。

Basic和Digest实际上并不是执行身份验证的理想方式,而Digest则更好,但遗憾的是Zend并不完全支持它(正确实现它需要花费太多工作,需要尽快完成项目)。 Basic auth的一个大问题是密码以明文形式发送。我正在考虑而不是以明文形式发送密码,我可以使用单向散列算法/ bcrypt以某种方式散列它以避免以明文形式发送密码吗?但它仍然遭受了中间人攻击。

但是,如果将基本身份验证与大多数Web应用程序使用的当前基于表单的身份验证进行比较,他们在将请求传输到服务器时是否共享相同的安全问题?

3 个答案:

答案 0 :(得分:3)

保持请求安全的最佳选择是使用SSL进行身份验证请求,以确保信息不以纯文本格式发送。

如果您在发送身份验证请求之前尝试在客户端上执行某种哈希或加密,则会立即将您的哈希算法以及您可能使用的任何盐暴露给恶意用户。这使他们可以对您的服务器使用字典攻击。

  

但如果比较基本   使用当前基于表单的身份验证   大多数网络应用使用的身份验证,   他们俩都是一样的   转移时的安全问题   请求到服务器?

他们绝对是。再次使用基于表单的身份验证,最好的办法是使用SSL。

或者,您可以考虑使用OAuth等外部身份验证服务。

答案 1 :(得分:0)

Hum,Zend Framework有一个用于身份验证的摘要适配器?

Manual: Zend Digest Authentication

答案 2 :(得分:0)

您始终可以编写自己的Zend_Auth_Adapter进行HTTP身份验证。我实施Zend_Auth_Adapter_Http_Resolver_Interface每天以默认密码+日+月的格式使用不同的密码。像魅力一样工作!