如何检测Web服务器类型

1 c# webserver

我正在尝试检测哪个Web服务器类型正在运行域,那么处理此问题的最佳选择是什么.

我正在做一个C#应用程序.

Abh*_*pta 7

您可以向服务器发出请求并检查响应标头中的值" Server"

例如

using System;
using System.Net;

public class TestApp {
    public static void Main( string[] args ) {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.stackoverflow.com/");
        WebResponse response = request.GetResponse();
        Console.Out.WriteLine( response.Headers.Get("Server") );
    }
}

// Output:
// Microsoft-IIS/7.0
Run Code Online (Sandbox Code Playgroud)


Die*_*iso 7

另一种简单的方法是使用网络浏览器(Chrome、FireFox、IE)。大多数都允许按 F12 键访问其开发人员模式。然后,访问 Web 服务器 url 并转到“网络”选项卡和“响应标头”选项以查找是否存在“服务器”响应标头。

坏消息是“Server”标头可能不会出现在响应中,因为它是可选的,事实上,如果考虑安全性,则不建议使用它(否则黑客可能知道正在使用的服务器及其版本,这样她就可以集中精力攻击服务器的漏洞)

  • 删除“服务器”响应标头是否对安全有任何积极作用是值得商榷的。这被称为“通过默默无闻的安全”,它主要给人一种虚假的安全感。很少有真正的黑客关心您的服务器类型是什么,他们只是通过自动化机器人使用广泛的技术攻击您的网站。https://serverfault.com/questions/925892/does-it-makes-sense-from-a-security-perspective-to-remove-the-server-http-header (3认同)