使用postman模拟后端接口cors

最近遇到一个需求:我们后端接口被扫描出存在cors问题:不安全的CORS配置

安全部门让我们配置上可信的域名即可,其实这个实现非常简单,代码影响点比较小:

 app.UseCors(builder => builder
                 .WithOrigins("http://www.baidu.com")
                 .AllowAnyMethod()
                 .AllowAnyHeader()
                 .AllowCredentials());

  举个例子,http://www.baidu.com就是我们的可信域名,如果使用如下访问,应该是不允许的:

但是我之前对cors了解的比较浅,只知道原理是前端访问资源的时候必须保证同源(协议,域名,端口号),如果保证不了前端是拿不到数据的。

所以我在后端使用postman进行测试,发现即使我在后端设置了可信域名http://www.baidu.com,但是我用postman模拟时,都能返回200,以及数据结果,我当时就懵了,难道这个配置不生效?

后来查阅资料发现:

postman不管是否跨域,返回的都是200结果以及数据,因此不能用是否返回值判断服务器是否允许跨域,而应该使用 response 的 header 字段中是否存在允许跨域的字段来判断是否允许跨域:

如果在response header中含有Access-Control-Allow-Origin字段,并返回正确结果,说明是被允许访问,不存在跨域问题;

 

如果header没有这个Access-Control-Allow-Origin字段的信息,那么是存在跨域问题的。

原文地址:https://www.cnblogs.com/walt/p/15187881.html