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

2023-01-31 09:51:36 +08:00
 feeeff

前提

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

问题

1887 次点击
所在节点    问与答
11 条回复
ksc010
2023-01-31 09:54:45 +08:00
postman 跟你设置 CORS 没有任何关系
CORS 是用来提示浏览器的(若浏览器自己不遵守,这个限制也没有用)
renmu
2023-01-31 09:59:15 +08:00
可以,跨域是浏览器的限制
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
2023-01-31 10:07:21 +08:00
跨域是浏览器安全限制
feeeff
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
2023-01-31 10:29:54 +08:00
@feeeff
可以
webmrxu
2023-01-31 10:42:55 +08:00
浏览器搞一个限制跨域问题,本来就很鸡肋。http 是没有跨域概念的,所以只要不用浏览器发起的 http 请求,是没有跨域限制的。
xiaochena
2023-01-31 10:53:07 +08:00
@feeeff 所以才有跨站请求伪造 (CSRF)
Tyaqing
2023-01-31 10:54:19 +08:00
@feeeff 可以并合理,比如客户端开发的一些接口,完全没有这种跨域限制,访问任何接口都 ok
IvanLi127
2023-01-31 10:57:42 +08:00
@feeeff 如果你是攻击者的话,你用代理去请求,你已经是换其他攻击方式了。和跨越限制没关系了。
feeeff
2023-01-31 11:31:18 +08:00
谢谢热心的兄弟们

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/911835

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX