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

2021-03-01 16:32:31 +08:00
 uiosun

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


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

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

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

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

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

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

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

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

© 2021 V2EX