|
@@ -14,11 +14,6 @@ namespace FastGithub.HttpServer
|
|
/// </summary>
|
|
/// </summary>
|
|
sealed class HttpReverseProxyMiddleware
|
|
sealed class HttpReverseProxyMiddleware
|
|
{
|
|
{
|
|
- private const string LOOPBACK = "127.0.0.1";
|
|
|
|
- private const string LOCALHOST = "localhost";
|
|
|
|
- private const int HTTP_PORT = 80;
|
|
|
|
- private const int HTTPS_PORT = 443;
|
|
|
|
-
|
|
|
|
private static readonly DomainConfig defaultDomainConfig = new() { TlsSni = true };
|
|
private static readonly DomainConfig defaultDomainConfig = new() { TlsSni = true };
|
|
|
|
|
|
private readonly IHttpForwarder httpForwarder;
|
|
private readonly IHttpForwarder httpForwarder;
|
|
@@ -26,7 +21,6 @@ namespace FastGithub.HttpServer
|
|
private readonly FastGithubConfig fastGithubConfig;
|
|
private readonly FastGithubConfig fastGithubConfig;
|
|
private readonly ILogger<HttpReverseProxyMiddleware> logger;
|
|
private readonly ILogger<HttpReverseProxyMiddleware> logger;
|
|
|
|
|
|
-
|
|
|
|
public HttpReverseProxyMiddleware(
|
|
public HttpReverseProxyMiddleware(
|
|
IHttpForwarder httpForwarder,
|
|
IHttpForwarder httpForwarder,
|
|
IHttpClientFactory httpClientFactory,
|
|
IHttpClientFactory httpClientFactory,
|
|
@@ -84,20 +78,14 @@ namespace FastGithub.HttpServer
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
- // http(s)://127.0.0.1
|
|
|
|
- // http(s)://localhost
|
|
|
|
- if (host.Host == LOOPBACK || host.Host == LOCALHOST)
|
|
|
|
|
|
+ // 未配置的域名,但仍然被解析到本机ip的域名
|
|
|
|
+ if (host.Host.Contains('.') == true)
|
|
{
|
|
{
|
|
- if (host.Port == null || host.Port == HTTPS_PORT || host.Port == HTTP_PORT)
|
|
|
|
- {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
|
|
+ domainConfig = defaultDomainConfig;
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
|
|
|
|
- // 未配置的域名,但dns污染解析为127.0.0.1的域名
|
|
|
|
- this.logger.LogWarning($"检测到{host.Host}可能遭遇了dns污染");
|
|
|
|
- domainConfig = defaultDomainConfig;
|
|
|
|
- return true;
|
|
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <summary>
|