记录一次apisix上cros配置跨域失败的问题
安全要求不允许跨域请求,但是业务侧由于涉及多个域名,并且需要共享cookie,所以需要配置跨域。
在apisix上配置了cors如下。
结果安全漏扫还是识别到了跨域请求的漏洞。
调试了cors.lua的插件脚本,发现apisix上是如果不在allowOrigins列表里面的话,就不做处理,没有在响应头写入Access-Control-Allow-Origin。
后来发现是后台java服务上面配置了Access-Control-Allow-Origin:*。直接返回的响应头。
后台服务网关改掉就ok了。
这里主要问题是,apisix采用的是不在allow列表的origin直接不做处理。(其实后端没主动写入也没问题)但是在后端主动写入Access-Control-Allow-Origin的情况下会导致失效。
这里解决方法直接规定后端不要做跨域配置即可。