ithewei / libhv

🔥 比libevent/libuv/asio更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.

Home Page:https://github.com/ithewei/libhv/wiki

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HTTP返回中默认header的Server字段会填上httpd/1.3.2(当前hv版本号), 会被安全扫描软件误认为是apache http server报错

chaojizhuoge opened this issue · comments

void HttpHandler::addResponseHeaders() {
    HttpResponse* pResp = resp.get();
    // Server:
    static char s_Server[64] = {'\0'};
    if (s_Server[0] == '\0') {
        snprintf(s_Server, sizeof(s_Server), "httpd/%s", hv_version());
    }
    pResp->headers["Server"] = s_Server;

    // Connection:
    pResp->headers["Connection"] = keepalive ? "keep-alive" : "close";
}

能否将Server中的httpd改成其他libhv或者其他更具标志性的字段以便和apache httpd区分

1、为什么误认为是httpd就会报错;
2、你可以自行通过resp->headers["Server"] 重新设置一个;

  1. 公司目前使用的多款安全扫描工具,都会把httpd/1.3.2误认为是apache http server, 然后对比版本号,1.3.2对于apache http server是个很老的版本号,会报出很多NVD已知的安全漏洞
  2. 我目前是这么做的,我只是建议默认的字段可以更有标志性一点