zoukankan      html  css  js  c++  java
  • 使用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字段的信息,那么是存在跨域问题的。

  • 相关阅读:
    作业
    复习整理3
    复习整理2
    复习整理1
    书籍-os 相关
    书籍正则
    书籍
    SocketServer 简化编写网络服务器的步骤
    socket 粘包
    经典排序算法
  • 原文地址:https://www.cnblogs.com/walt/p/15187881.html
Copyright © 2011-2022 走看看