在 haproxy 中添加子域名以实现 CORS

在 haproxy 中添加子域名以实现 CORS

我想在 haproxy 中执行与此等效的操作,以允许我的域中的任何服务器使用 CORS。默认情况下,CORS 仅执行 null、star 或单个 URL。这可能吗?

 SetEnvIf Origin "^(.*\.bebop\.co)$" ORIGIN_SUB_DOMAIN=$1
 Header set Access-Control-Allow-Origin "%{ORIGIN_SUB_DOMAIN}e" env=ORIGIN_SUB_DOMAIN

我已经添加了 Access-Control-Allow-Credentials 并将其设置为 true,所以只需要再添加一个。非常感谢。

答案1

好的,我想我已经想出了一些可以回答我的问题的方法。上面的等效方法是在前端部分添加:

frontend
...
...
# CORS Config Capture
capture request header origin len 50

在后端:

backend
...
...
http-response set-header Access-Control-Allow-Credentials true
http-response set-header Access-Control-Allow-Origin %[capture.req.hdr(0)]

答案2

该响应将回答具有正确 CORS 的任何域,因此您可能允许 MITM。您接受任何请求,并在 CORS 中说这是允许的,它相当于 *。如果您希望更安全,则需要使用 LUA 模块: https://www.haproxy.com/blog/enabling-cors-in-haproxy/ 如果可以的话,或者只是用通配符对所有内容进行硬编码。

相关内容