论跨域头Access-Control-Allow-Origin如何正确的支持多域名

参考这篇文章:《Cors跨域(三):Access-Control-Allow-Origin多域名?》

先说错误的方式:

  1. Access-Control-Allow-Origin不支持逗号分隔、不支持分号分割
  2. Access-Control-Allow-Origin不支持多次重复的头设置,只能支持一个
  3. Access-Control-Allow-Origin不支持通配符,例如*.abc.com是不行的

再说正确的:

  1. Access-Control-Allow-Origin可以使用*,但是有安全风险
  2. 可以预设一个跨域白名单(例如Set<String>),根据request中的origin动态检查是否在跨域白名单中,若命中,将单一的域名添加到header中
  3. 可以在2的基础上,拓展支持通配符,这里不再详述了

Leave a Reply

Your email address will not be published. Required fields are marked *