请原谅我的无知因为我几乎没有网络开发经验。
我实现了一个简单的机制,我将用户密码哈希(发送为post / get参数)并将其存储在数据库中。用户成功登录后,我将用户ID(数据库中的PK)返回给客户端。后续请求必须具有用户ID,该用户ID用作验证请求的原始机制。
我已经阅读了几个从简单的http身份验证开始的机制,使用salted哈希(我正在使用),实现对看似复杂的OAuth
身份验证的访问令牌。啊!也许最后是关于https
。
暂且不谈最后两项,我仍然需要理解,我似乎有一个非常基本的问题,我无法找到答案。
对不起,这不是一个直接的编程问题,但我问的原因是我无法在谷歌上找到答案,或者说我没有使用正确的搜索关键字。
问题是,考虑到访问令牌和api密钥等的所有机制,即使我要实现这种机制但不使用https,实现它们还有什么意义吗?我的意思是,就像任何人都可以嗅到我的明文密码或用户ID一样,他也可以窥探令牌/密钥并随后恶意使用它,从而使整个机制无用。这是否意味着https是唯一真正安全的选择?
我必须在这里遗漏一些东西,但指点会非常感激。
答案 0 :(得分:1)
这是否意味着https是唯一真正安全的选择
不,没有单一的“安全”选项,而是您实施的一系列缓解措施,以降低应用程序各个点的风险。 HTTPS做了3件不同的事情:
如果您不使用HTTPS,那么如果攻击者正在观看或操纵纯文本数据包,那么您谈到的所有其他安全实践很容易变得毫无价值。看看Insufficient Transport Layer Protection上的帖子,看看这在实践中意味着什么。
答案 1 :(得分:0)
没有HTTPS,是的,一些随机黑客可能会嗅到来自您系统的数据包,并窃取有关登录的信息。