我是Web服务的新手,并阅读有关基于令牌的身份验证,该身份验证可用于What is token based authentication?的Web服务。我在互联网上搜索,但是基于http的网站如何管理基于令牌的身份验证而没有任何安全漏洞,这让人很困惑。
我有什么意义?
我可以坐在服务器和客户端之间,通过嗅探流量并在流量到期之前滥用它来以某种方式存储令牌。我错了吗?
EDIT
正如https://security.stackexchange.com/questions/46348/token-based-authentication-under-http所述。
" Facebook使用作为cookie或HTTP标头传递的OAuth令牌 受HTTPS保护。"
我如何实现这一点,因为在这种情况下,网站将基于http,只有http-headers将使用https。如果我错了,请纠正我。
答案 0 :(得分:2)
您的编辑暗示了对HTTPS的误解。
规范地说,HTTP(意思是,#34;语言"网络上说的,由https://www.ietf.org/rfc/rfc2616.txt定义)是基于文本的,#34;应用程序级协议",用于TCP套接字(TCP是"传输级别"层)。
从这个意义上讲,HTTP和HTTPS是相同的"语言",它们没有什么不同。 HTTP和HTTPS都是基于文本的请求/响应协议,每个协议都包含标题和正文,请求指定一个动词,如GET,POST,PUT,......没有任何区别。
在HTTP与HTTPS之间有什么不同,就是在这个HTTP"语言"之下(应用程序级协议),HTTPS使用使用提供加密的SSL或TLS层加密的TCP套接字。
当SSL / TLS层在 HTTP层下发生时,请求标头发生的情况与正文发生的情况之间没有区别。
回到你的问题:
我如何实现这一点,因为在这种情况下,网站将基于http,只有http-headers将使用https。如果我错了,请纠正我。
在单个请求/响应周期中,您不能只使用标头,而不能使用HTTPS。它全有或全无。
结论是,根据您链接的文章:基于令牌的身份验证只有在令牌始终受到保护时才能安全。如果您总是使用HTTPS(在所有请求/响应中),则保证(标题和正文都受到保护)。如果连一个请求或响应都没有通过HTTPS发送,那么你就有一个缺陷。