实现用户和请求身份验证

时间:2012-01-09 17:59:04

标签: php web-services security https

请原谅我的无知因为我几乎没有网络开发经验。

我实现了一个简单的机制,我将用户密码哈希(发送为post / get参数)并将其存储在数据库中。用户成功登录后,我将用户ID(数据库中的PK)返回给客户端。后续请求必须具有用户ID,该用户ID用作验证请求的原始机制。

我已经阅读了几个从简单的http身份验证开始的机制,使用salted哈希(我正在使用),实现对看似复杂的OAuth身份验证的访问令牌。啊!也许最后是关于https

暂且不谈最后两项,我仍然需要理解,我似乎有一个非常基本的问题,我无法找到答案。

对不起,这不是一个直接的编程问题,但我问的原因是我无法在谷歌上找到答案,或者说我没有使用正确的搜索关键字。

问题是,考虑到访问令牌和api密钥等的所有机制,即使我要实现这种机制但不使用https,实现它们还有什么意义吗?我的意思是,就像任何人都可以嗅到我的明文密码或用户ID一样,他也可以窥探令牌/密钥并随后恶意使用它,从而使整个机制无用。这是否意味着https是唯一真正安全的选择?

我必须在这里遗漏一些东西,但指点会非常感激。

2 个答案:

答案 0 :(得分:1)

  

这是否意味着https是唯一真正安全的选择

不,没有单一的“安全”选项,而是您实施的一系列缓解措施,以降低应用程序各个点的风险。 HTTPS做了3件不同的事情:

  1. 它保证了网站的身份(网站验证)。
  2. 确保内容未被操作 过境(数据完整性)。
  3. 确保在传输过程中没有发生窃听 (数据机密性)。
  4. 如果您不使用HTTPS,那么如果攻击者正在观看或操纵纯文本数据包,那么您谈到的所有其他安全实践很容易变得毫无价值。看看Insufficient Transport Layer Protection上的帖子,看看这在实践中意味着什么。

答案 1 :(得分:0)

没有HTTPS,是的,一些随机黑客可能会嗅到来自您系统的数据包,并窃取有关登录的信息。