V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
feeeff
V2EX  ›  问与答

关于跨域问题,请教各位一些问题

  •  
  •   feeeff · 2023-01-31 09:51:36 +08:00 · 1862 次点击
    这是一个创建于 667 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前提

    假设我的服务端地址为: http://api.a.com, 客户端地址为: http://www.a.com

    问题

    • 如果服务端不设置任何 CORS 配置,那么可以通过 postman 或者其他 api 请求工具可以正常请求?不会出现跨域问题?

    • 如果服务端设置 CORS 配置 Access-Control-Allow-Origin: www.a.com, 那么还可以通过 postman 或者其他 api 请求工具可以正常请求吗?

    11 条回复    2023-01-31 11:31:18 +08:00
    ksc010
        1
    ksc010  
       2023-01-31 09:54:45 +08:00
    postman 跟你设置 CORS 没有任何关系
    CORS 是用来提示浏览器的(若浏览器自己不遵守,这个限制也没有用)
    renmu
        2
    renmu  
       2023-01-31 09:59:15 +08:00 via Android
    可以,跨域是浏览器的限制
    dzdh
        3
    dzdh  
       2023-01-31 10:04:18 +08:00
    - CORS 只限制浏览器环境( chrome/edge/firefox/...)
    - 对方允许跨域( response header)
    - 当前域允许跨域( content-security-policy)
    - 动态 script 标签引用跨域 js ( src=xxx.php?.js )不算 [请求跨域] ,算资源跨域,一般不需要对方服务器许可(当然对方可以根据 referer 来进行限制),同时受 content-security-policy 限制
    - 编程发起的请求(js/python/curl/php/java/go...)不受任何限制( cors 、content-security-policy),哪怕对方服务器的安全防护你也可以进行绕过


    总结。学会区分,浏览器中的请求,和其他请求的区别。
    huijiewei
        4
    huijiewei  
       2023-01-31 10:07:21 +08:00
    跨域是浏览器安全限制
    feeeff
        5
    feeeff  
    OP
       2023-01-31 10:18:51 +08:00
    @dzdh @huijiewei @ksc010 @renmu
    上面的兄弟们,如果答案都是可以的话,假设攻击者做了一个 www.b.com ,即使由于跨域问题,无法直接请求 api.a.com 的接口,但是我可以通过代理的方式,在 www.b.com 请求到 api.a.com 的数据,这样是合理的吗?
    waiaan
        6
    waiaan  
       2023-01-31 10:29:54 +08:00
    @feeeff
    可以
    webmrxu
        7
    webmrxu  
       2023-01-31 10:42:55 +08:00
    浏览器搞一个限制跨域问题,本来就很鸡肋。http 是没有跨域概念的,所以只要不用浏览器发起的 http 请求,是没有跨域限制的。
    xiaochena
        8
    xiaochena  
       2023-01-31 10:53:07 +08:00
    @feeeff 所以才有跨站请求伪造 (CSRF)
    Tyaqing
        9
    Tyaqing  
       2023-01-31 10:54:19 +08:00
    @feeeff 可以并合理,比如客户端开发的一些接口,完全没有这种跨域限制,访问任何接口都 ok
    IvanLi127
        10
    IvanLi127  
       2023-01-31 10:57:42 +08:00 via Android
    @feeeff 如果你是攻击者的话,你用代理去请求,你已经是换其他攻击方式了。和跨越限制没关系了。
    feeeff
        11
    feeeff  
    OP
       2023-01-31 11:31:18 +08:00
    谢谢热心的兄弟们
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1132 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 22:43 · PVG 06:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.