Security 如何识别http请求是来自浏览器还是来自代理服务器(或服务器)?

Security 如何识别http请求是来自浏览器还是来自代理服务器(或服务器)?,security,proxy,httprequest,reverse-proxy,Security,Proxy,Httprequest,Reverse Proxy,我有一个接收http请求并返回json数据的服务器。我的服务器如何知道http请求是否来自客户端浏览器而不是服务器?特别是当流量可能从客户端代理到另一台服务器并调用我的服务器时 我知道我可以检查http头以了解用户代理、远程地址等,但它不安全。人们可以伪造http请求头 我还可以做哪些技巧来识别传入请求?如果您能够检查头,您将能够看到X-Forwarded-for,它将告诉您“真实”请求的ip。合法代理使用此标头 对于浏览器,用户代理头是您感兴趣的。流行的浏览器和爬虫程序将利用此标题 也就是说,

我有一个接收http请求并返回json数据的服务器。我的服务器如何知道http请求是否来自客户端浏览器而不是服务器?特别是当流量可能从客户端代理到另一台服务器并调用我的服务器时

我知道我可以检查http头以了解用户代理、远程地址等,但它不安全。人们可以伪造http请求头


我还可以做哪些技巧来识别传入请求?

如果您能够检查头,您将能够看到X-Forwarded-for,它将告诉您“真实”请求的ip。合法代理使用此标头

对于浏览器,用户代理头是您感兴趣的。流行的浏览器和爬虫程序将利用此标题


也就是说,这些标题可以伪造或省略。没有单一的方法来确定传入请求的“真实”因素。最好合并尽可能多的头、模式和行为来确定请求的合法性。

如果您能够检查头,您将能够看到X-Forwarded-for,它将告诉您“真实”请求的ip。合法代理使用此标头

对于浏览器,用户代理头是您感兴趣的。流行的浏览器和爬虫程序将利用此标题


也就是说,这些标题可以伪造或省略。没有单一的方法来确定传入请求的“真实”因素。最好合并尽可能多的头、模式和行为来确定请求的合法性。

您无法知道。“匿名代理”将没有
X-Forwarded-For
标题。一些IRC服务器会在客户端连接时对其进行端口扫描,以查找常见的代理服务器端口,如8080、3128等。你可以开发一个工具,比如查找与你连接的人的代理。但它不会接收,也不会接收在陌生端口上运行的代理


这是一场艰苦的战斗,也是黑客使用它们的原因。如果这是一个问题,也许您应该重新评估您的业务模型或应用程序的功能

你没有办法知道。“匿名代理”将没有
X-Forwarded-For
标题。一些IRC服务器会在客户端连接时对其进行端口扫描,以查找常见的代理服务器端口,如8080、3128等。你可以开发一个工具,比如查找与你连接的人的代理。但它不会接收,也不会接收在陌生端口上运行的代理


这是一场艰苦的战斗,也是黑客使用它们的原因。如果这是一个问题,也许您应该重新评估您的业务模型或应用程序的功能

你能解释一下为什么这对你很重要吗?这将有助于回答问题。因为我只希望某些呼叫(请求)只有在来自客户端浏览器时才有效,而不是来自服务器(即,请求代理到另一个服务器,然后调用我的)。您能解释一下为什么这对您很重要吗?这将有助于回答这个问题。因为我只希望某些调用(请求)只有在来自客户端浏览器时才有效,而不是来自服务器(即请求代理到另一个服务器,然后调用我的)。因此,人们可以伪造x-forwarded-for?@murvinlai是的,它被称为头,并且它可以包含任何元素,如“一些化妆垃圾:完全伪造”。另外,“匿名代理”不会有x-forwarded-for元素。所以,人们可以伪造x-forwarded-for?@murvinlai是的,它被称为头,它可以包含任何元素,如“一些化妆垃圾:完全伪造”。此外,“匿名代理”也不会有x-forwarded-for元素。