Web services http网站如何防止基于令牌的身份验证的MITM攻击?

Web services http网站如何防止基于令牌的身份验证的MITM攻击?,web-services,security,authentication,http-token-authentication,Web Services,Security,Authentication,Http Token Authentication,我不熟悉web服务,并从中了解了可与web服务一起使用的基于令牌的身份验证。我在互联网上搜索过,但基于http的网站是如何在没有任何安全漏洞的情况下进行基于令牌的身份验证的,这相当令人困惑 我的观点是什么 我可以坐在服务器和客户机之间,通过嗅探流量来存储令牌,并在其过期之前对其进行滥用。我错了吗 编辑 如上文所述 Facebook使用作为cookie或HTTP头传递的OAuth令牌 受HTTPS保护 我如何实现这一点,因为在这种情况下,网站将基于http,只有http头将使用https。如果我错

我不熟悉web服务,并从中了解了可与web服务一起使用的基于令牌的身份验证。我在互联网上搜索过,但基于http的网站是如何在没有任何安全漏洞的情况下进行基于令牌的身份验证的,这相当令人困惑

我的观点是什么

我可以坐在服务器和客户机之间,通过嗅探流量来存储令牌,并在其过期之前对其进行滥用。我错了吗

编辑

如上文所述

Facebook使用作为cookie或HTTP头传递的OAuth令牌 受HTTPS保护


我如何实现这一点,因为在这种情况下,网站将基于http,只有http头将使用https。如果我错了,请纠正我。

您的编辑表明您误解了HTTPS的功能

从规范意义上讲,HTTP是指网络上使用的语言,由定义为基于文本的应用程序级协议,通过TCP套接字使用TCP作为传输层

从这个意义上讲,HTTP和HTTPS是同一种语言,没有什么不同。HTTP和HTTPS都是基于文本的请求/响应协议,每个协议都由头和正文组成,请求指定一个动词,如GET、POST、PUT等。。。没什么区别

HTTP与HTTPS的不同之处在于,在HTTP语言应用程序级协议下,HTTPS使用TCP套接字,这些套接字使用SSL或TLS层加密,后者提供加密

由于SSL/TLS层发生在HTTP层下,因此请求的头和主体之间不会有任何区别

回到你的问题:

我如何实现这一点,因为在这种情况下,网站将基于http,只有http头将使用https。如果我错了,请纠正我

在一个请求/响应周期中,不能只有头,而不能有使用HTTPS的主体。要么全力以赴,要么一事无成


根据您链接到的文章,结论是:只有在令牌始终是安全的情况下,基于令牌的身份验证才能是安全的。如果在所有请求/响应中始终使用HTTPS,则可以保证头和正文都受到保护。如果哪怕只有一个请求或响应没有通过HTTPS发送,那么您就有一个缺陷。

这不是通常所说的端到端加密(例如HTTPS)的答案吗?HTTPS无疑更安全,但问这个问题的目的是了解只有http的网站在选择基于令牌的身份验证时会冒什么风险。好吧,如果只使用http,意味着没有SSL,那么您就有麻烦了:这是一个很好的链接。谢谢正如rook提到的,Facebook使用OAuth令牌作为cookie或HTTP头传递,并受HTTPS保护。我如何实现这一点?