HTTP 服务可以防跨域,但小程序怎么办呢?

2021 年 3 月 1 日
 uiosun

蠢了蠢了,才发现 wx.request 本身就是个域,单独限定就好。


求助老哥,小程序有没有类似的跨域机制,防止第三方服务访问我的接口?

4384 次点击
所在节点    程序员
23 条回复
meshell
2021 年 3 月 1 日
"http 服务可以防跨域"是啥意思? 跨域是浏览器的限制呀
KyonLi
2021 年 3 月 1 日
绑定域名要验证所有权的
uiosun
2021 年 3 月 1 日
@meshell ……CROS 是服务端限制。至于你说的“浏览器的安全设置”,是后期才添加的(早期的一些浏览器,甚至没有 CROS 安全设定)
meshell
2021 年 3 月 1 日
@uiosun .....
weixiangzhe
2021 年 3 月 1 日
也可以加上 carf token 一类东西 限制一下
shakaraka
2021 年 3 月 1 日
。。。。。什么鬼需求。浏览器能防止而已,反代不久破了么?
ByZHkc3
2021 年 3 月 1 日
小程序很简单啊,你每次请求接口时用 wx.login 拿到 code,用这个 code 在后端做鉴权拦截就好了,一个用户一分钟最多只能请求 100 次这个接口,足够用了
uurun
2021 年 3 月 1 日
跨域是浏览器限制的
qinxi
2021 年 3 月 1 日
@uiosun #3 ???你在说什么
yiqiao
2021 年 3 月 1 日
跨域和第三方服务访问没有关系啊,
要想防止就做接口鉴权。
luoxiaoyang2021
2021 年 3 月 1 日
CROS 是服务端限制到没错、但是只有浏览器遵守了它
fucUup
2021 年 3 月 1 日
楼主你虚心一点,
预检请求返回后,所有浏览器都会遵守的,微信浏览器也会遵守

你什么都不用做,你在干啥呢
huabalance
2021 年 3 月 1 日
Cross-Origin Resource Sharing (CORS)
Cross-site request forgery (CSRF)
bruce0
2021 年 3 月 1 日
@meshell 对呀 没看懂啥意思
HTTP 协议是没有跨域限制的, 日常说的跨域是浏览器做的限制
chinvo
2021 年 3 月 1 日
cors 响应头是服务器发的,但是限制是客户端(浏览器)自己限制的,不遵守 cors 的“客户端”就可以无视了,比如对方用代码转发,甚至更简单点,用 Nginx 转发。
musi
2021 年 3 月 1 日
@uiosun 我寻思这 CORS 报错是浏览器报的错吧?而且请求也是正常发送的,只是把响应拦截了而已。cors 响应头更像是服务端设置的开关,告诉浏览器什么时候作出限制。
如果说 CORS 是服务端的限制,那不管你的客户端是什么,只要请求这个后端都会受到 CORS 的限制,如果是这样你的这个问题也就不存在了吧?
附一个 MDN 地址(这片不建议看中文,翻译有点歧义):
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
wxsm
2021 年 3 月 1 日
> CROS 是服务端限制

你真搞错了,CROS 是纯客户端限制,真正意义上的君子协定。从服务端安全角度上来说起不到任何作用。
ByteRan
2021 年 3 月 1 日
CROS 有乱用,我不用浏览器,照样绕过。token 就能解决你这个问题
whypool
2021 年 3 月 1 日
调用微信鉴权的逻辑就行了
renmu123
2021 年 3 月 1 日
楼上的 cros 都是故意的吗,如果是服务端设置,那就不存在爬虫工程师了

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

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

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

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

© 2021 V2EX