赞
踩
之前发表过一篇,百度墨斗鱼后台上传文章分析的文章。时隔几个月,文件预览接口加了asc-
token 和 验证码(百度v2)。闲来没事分析一下。所有的分析都基于协议,不基于web自动化。
验证码目前有四种,验证码刷新重新加载可以互相切换,所以只要搞定其中一种或者多种即可,
这四种目前都能搞定,验证通过之后通过回调设置成功标识,每次上传携带成功标识即可,不用每
次都验证。需要注意的是log 接口参数 fuid 是一个获取浏览器指纹的(这块处理一下比较安全),fs
是传入加密后的验证结果的。
1,滑块缺口
2,单词点击
3,滑块拉绳子
4,滑块旋转
目前以搞定滑块旋转和滑块缺口为例进行分析,加载到其他类型则刷新。
关键接口如下
- public interface BaiDuCaptchaService {
-
- /**
- * 加载验证码
- */
- LoadRes load(LoadReq req) throws Exception;
-
- /**
- * 初始化验证码
- */
- InitRes init(InitReq req);
-
- /**
- * 旋转验证码获取验证码详情 style
- */
- StyleRes spinStyle(StyleReq req);
-
- /**
- * 缺口滑块验证码获取验证码详情 style
- */
- StyleRes puzzleStyle(StyleReq req);
-
- /**
- * 转base64
- */
- String imageToBase64(String imageUrl);
-
- /**
- * 识别
- */
- int identify(String imageBase64, String verifyIdfId);
-
- /**
- * 旋转提交验证
- */
- LogRes spinLog(LogReq req) throws IOException;
-
- /**
- * 滑块缺口提交验证
- */
- LogRes puzzleLog(LogReq req) throws IOException;
-
- /**
- * 旋转验证获取stk
- */
- StkRes spin(StkReq req, LogData logData) throws Exception;
-
- /**
- * 滑块缺口验证获取stk
- */
- StkRes puzzle(StkReq req, LogData logData) throws Exception;
-
- /**
- * 获取验证凭证 (__ymg_scsc=xxx)
- */
- String getSc(String stk) throws IOException;
-
- }
效果如下
关键方法,需要注意的是 AcsTokenParam 是定期变化的。
技术交流,主页左边微信。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。