HTTP 服务可以防跨域,但小程序怎么办呢? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容 style type="text/css"> #Wrapper { background-color: #e2e2e2; background-image: url("/static/img/shadow_light.png"), url("//cdn.v2ex.com/assets/bgs/circuit.png"); background-repeat: repeat-x, repeat-x; } #Wrapper.Night { background-color: #1f2e3d; background-image: url("/static/img/shadow.png"), url("//cdn.v2ex.com/assets/bgs/circuit_night.png"); background-repeat: repeat-x, repeat-x; background-size: 20px 20px, 162.5px 162.5px; }
uiosun
V2EX    程序员

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

  uiosun 2021-03-01 16:32:31 +08:00 4142 次点击
这是一个创建于 1736 天前的主题,其中的信息可能已经有所发展或是发生改变。

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


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

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

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

你真搞错了,CROS 是纯客户端限制,真正意义上的君子协定。从服务端安全角度上来说起不到任何作用。
tanranran
    18
tanranran  
   2021-03-01 19:07:36 +08:00
CROS 有乱用,我不用浏览器,照样绕过。token 就能解决你这个问题
whypool
    19
whypool  
   2021-03-01 19:17:31 +08:00 via Android
调用微信鉴权的逻辑就行了
renmu123
    20
renmu123  
   2021-03-01 19:29:07 +08:00 via Android
楼上的 cros 都是故意的吗,如果是服务端设置,那就不存在爬虫工程师了
zzzmj
    21
zzzmj  
   2021-03-01 19:32:47 +08:00
cros ...
jinliming2 /td>
    22
jinliming2  
   2021-03-01 19:43:38 +08:00   1
CROS 是什么鬼……不是 CORS 么……
CORS 只能防止第三方不能再浏览器上直接请求你的接口,但不能防止第三方服务访问你的接口。
防止第三方服务访问很困难,因为你的所有限制都可以通过第三方反代解除。
加 token 、加校验都只能是提升那么一丢丢门槛而已。
uiosun
    23
uiosun  
OP
   2021-03-01 19:56:49 +08:00
@jinliming2 原来是这样,年轻了,我还以为是服务端做的操作(凭着感觉打出了 CROS,)
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3224 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 20ms UTC 11:24 PVG 19:24 LAX 03:24 JFK 06:24
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86