我想在 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/ 如果可以的话,或者只是用通配符对所有内容进行硬编码。