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

jasonliu · 2015年11月20日 · 最后由 qingxp9 回复于 2015年11月21日 · 5707 次阅读

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

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

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

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

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

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

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

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

手机是完全可以模拟的。

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

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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号