"cors-light" host vs origin check

see https://github.com/comfyanonymous/ComfyUI/issues/4850 for explanation
This commit is contained in:
Alex "mcmonkey" Goodwin
2024-09-09 12:57:49 +09:00
parent dc46ec5164
commit 8f72c13d90

View File

@@ -114,6 +114,19 @@ public class WebServer
WebApp = builder.Build();
WebApp.Use(async (context, next) =>
{
if (context.Request.Headers.Host.Any() && context.Request.Headers.Origin.Any())
{
string host = context.Request.Headers.Host[0].ToLowerFast();
string origin = context.Request.Headers.Origin[0].ToLowerFast();
Uri uri = new(origin);
string originMain = uri.Authority.ToLowerFast();
if (host != originMain)
{
context.Response.StatusCode = 403;
await context.Response.WriteAsync("Forbidden");
return;
}
}
string authKey = Program.ServerSettings.Network.RequiredAuthorization;
if (!string.IsNullOrWhiteSpace(authKey))
{