瞎扯淡 如何分辨请求来自于 Web 端还是 App 端?

jasonliu · November 20, 2015 · Last by qingxp9 replied at November 21, 2015 · 5639 hits

目前在开发一个功能,需要针对 web 端和 App 端的请求分别作处理,来自 App 端的请求要跳过某些验证,目前的方案是在 http header 或者 url 带上个参数,有这个参数的表示是 web 端来的请求,需要进行验证,但是感觉这种方式太安全了,有种此地无银三百两的感觉。大家有没有什么好的方案?想请教一下。

客户端带个约好的 Header 表明自己的身份就可以了,不需要下命令说“我要验证!”是否要验证或其他逻辑的区别交给后端操心。另外就算说要验证也没有什么不安全的。

@billy 目前就是这样做的,比较担心的就是别人更改 header 中的 value 去跳过验证

#2 楼 @jasonliu 肯定会啊。移动端可以跳过某些验证的依据是什么?

@rei 因为人手原因,移动端没有足够资源来与后端对接接口,导致 web 端开发完成要上线,但是移动端又跟不上,所以才要做区分

用 https,客户端登录时给一个随机的 header value 而不是固定的

客户端的 UserAgent 加上特定字符串,后端来判断是 App 还是 Web 就好了。

无论你用什么办法区分,别人都可以用类似的方法来绕过,不建议给移动端留一个不验证的口子,太不安全了。 任何一扇开着的门,都会导致其他的门形同虚设。

手机是完全可以模拟的。

安全的本质基于信任,“来自手机的请求”这种并不可靠。

虽然,即使是 BAT 也会出现这种利用移动端接口来绕过验证的安全缺陷 毕竟业务需求第一

You need to Sign in before reply, if you don't have an account, please Sign up first.