有道翻译网站 http://fanyi.youdao.com/
一、测试
首先拿到这个网站, 按照正常的流程, 带上请求的header和Form Data部分, 但是每次response都是errorcode50
二、分析
打开调试窗口
在左边翻译框输入一个测试字符串,接下来注意这个请求是由那个js发起的
发现这个js文件fanyi.min.js, 注意min.js这是一个压缩版js文件
右键这个js文件 - Reveal in Sources panel, 会自动跳到Source栏 如下图
点击箭头位置{}, 将js文件格式化显示出来,拿到源码
分析post的Form Data部分
每次在翻译框输入一个内容, XHR一栏里都会异步得到一个返回结果,查看这个请求的response里可以得到我们的翻译结果
找到这条请求的header部分,发现每次请求的Form Data的这几个参数都是变化的,js加密也往往是在这个地对传输的数据进行加密
- salt
- sign
- ts
- bv
尝试在刚才的fanyi.min.js文件中搜索这几个参数
define("newweb/common/service", ["./utils", "./md5", "./jquery-1.7"], function(e, t) {
var n = e("./jquery-1.7");
e("./utils");
e("./md5");
var r = function(e) {
var t = n.md5(navigator.appVersion)
, r = "" + (new Date).getTime()
,