如何确认 HTTP 的认证方式

2017-05-16 11:30:09 +08:00
 Morriaty

在用 fiddler 抓包一个 app 时,发现 headers 里包含了 Authorization。 但我并没有找到具体的认证方式,app 是以游客身份使用的,也没POST /login之类的方法。

3142 次点击
所在节点    Python
10 条回复
0ZXYDDu796nVCFxq
2017-05-16 14:28:12 +08:00
通常 HTTP 认证采用 Authorization 请求头,格式 Authorization: Basic xxx
对 xxx 进行 base64 解码,如果是 HTTP Basic Auth, xxx 是 user:password 使用 base64 编码的字符串
如果 base64 无法解码或者格式不符合,可能是采用 OAuth 认证,这个只能清空 App 数据,然后抓认证过程的网络请求才能确定了

另外,虽然 Web server(nginx, Apache, IIS etc.)支持 base 认证,但这层认证是可以移到网站代码里实现的,所以服务器如何处理和识别这个 token 是非常灵活的。
johnlui
2017-05-16 14:42:12 +08:00
基础认证嘛,把用户名密码拼成特定格式加到 header 里就行了
lemmony
2017-05-16 16:51:05 +08:00
首先你得找到 token 是怎么来的,肯定有由来的
Morriaty
2017-05-16 17:36:04 +08:00
@gstqc 就是没有找到认证的请求,游客身份,也没有输用户名密码的步骤
Morriaty
2017-05-16 17:36:48 +08:00
@lemmony 可能是我比较菜,真的没找到,链家的 app
0ZXYDDu796nVCFxq
2017-05-16 17:46:36 +08:00
@Morriaty 应该是在 App 第一次启动时到某些入口获取,然后保存到本地,保存时间看服务器和客户端的代码是怎么写的。
这也可以用来识别用户,把这个 token 和设备、IMEI 等可能能获取到的信息绑在一起,定位用户。
fiht
2017-05-16 18:10:11 +08:00
app 的包,app 和服务器端协商好编解码方式就好了。
具体认证只能逆向开 app 看
sensui7
2017-05-16 21:21:50 +08:00
jwt, Authorization 那是一段服务器签名过的 token, 你解不出来的,
Morriaty
2017-05-17 09:53:17 +08:00
@sensui7 我连 token 都没找到.......
mingyun
2017-05-17 22:12:11 +08:00
一楼正解,如果是 jwt,没有秘钥没法解的

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

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

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

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

© 2021 V2EX