截至目前,还有没有欺骗HTTPS引用器的方法?

As of current, are there still any methods to spoof HTTPS referer?

提问人:Xingce Bao 提问时间:5/25/2023 更新时间:5/25/2023 访问量:64

问:

我想知道在后端的 https 请求中检查 origin/referer 标头以了解前端域是否安全。

据我所知:

  1. 这些标头由浏览器自动设置。人们不能通过 javascript 更改它,除非他们使用一些修改过的浏览器或插件。

  2. 有人会声明某些代理软件可以更改 http 数据包,因此有人可能会在前端和后端之间使用它来伪造这些标头。但就我而言,https 是加密的。所以这是不可能的。

因此,如果我检查这些标头并且请求确实来自浏览器,则这些标头将反映前端的真实域。我说得对吗?

感谢您的帮助!

HTTP 安全 HTTPS

评论

2赞 luk2302 5/25/2023
是的,在浏览器中,这些是无法伪造的。从其他任何地方(curl、wget、postman)都可以将它们设置为请求者想要的任何内容。随心所欲地做。您无法将浏览器与邮递员请求区分开来。
0赞 Rob Napier 5/25/2023
这回答了你的问题吗?如何欺骗http referer
0赞 Evert 5/25/2023
是的,它可以是伪造的。如果您因为想要引入某些安全功能而提出要求,则应添加该上下文。
0赞 Xingce Bao 5/25/2023
@RobNapier实际上,我的问题是https是否可以在这里解决http的欺骗问题。
0赞 luk2302 5/26/2023
不,它不能,因为我们已经给出了所有原因。Https 可以防止 MITM 和有人在传输中监视您的数据,它并不能完全保护您免受恶意客户端的侵害,因为它根本无法保护您。

答:

0赞 Rob Napier 5/25/2023 #1

您想保护谁的标题?正如您似乎理解的那样,最终用户可以将标头设置为他们想要的任何内容:

除非他们使用一些修改过的浏览器或插件。

或非浏览器客户端,或用户控制的 HTTPS 代理。

您说得对,如果用户的系统设置正确(HTTPS 证书有效且用户环境未受到损害),随机第三方很难(在有限意义上“不可能”)修改请求。因此,通过这种方式,Referer 标头会像请求的其余部分一样受到保护。

但它可以说最终用户想说的任何话。如果最终用户不修改它,它才是“真正的域”。

评论

0赞 Xingce Bao 5/25/2023
嗯,我明白这一点。事实上,用户仍然可以使用用户控制的HTTPS代理来更改它,因为用户本身知道所有https密钥。所以他们仍然可以做他们想做的事。Https 只会让它更麻烦。
0赞 Rob Napier 5/25/2023
正确。HTTPS保护通道免受外界的侵害,它不能保护各方免受彼此的侵害。