我用F12查看了登录前和登录后的情况如下:
我填完账号密码还没点登录,每隔一段时间它就会发送一个post请求:
然后登录以后,在post包里看到这个:
发现并没有把我的账号密码显示在Query String Parameters里,这是怎么一回事?那它是通过什么传输我的账号密码给服务器的?我该如何模拟登录?
115不是不能直接网页登录了?
来来来, 过程在这里:
var browserInterface = {
LoginEncrypt: function LoginEncrypt(env, callback) {
var server = "http://139.129.47.212:3000/";
var rTime;
function processDec(r) {
json = $.parseJSON(r.responseText);
if (!json.state) {
window[callback](r.responseText);
} else {
console.log('ok');
$.post(server, {body: json.data,time: rTime})
.success(function (r) {
var cookie = $.parseJSON(r.body).cookie;
var d = new Date();
d.setTime(d.getTime() + (7*24*60*60*1000));
for (var i in cookie) if ( cookie.hasOwnProperty(i) ) {
document.cookie = (i+'='+escape(cookie[i])+';expires='+d.toUTCString()+';domain='+'.115.com');
}
console.log('done');
location.reload();
});
}
}
var dat = {
account: $('#js-account').val(),
passwd: $('#js-passwd').val()
};
if (env.hasOwnProperty('country')) {
dat['country'] = env['country'];
}
$.post(server, dat)
.success(function (r) {
console.log(r);
rTime = r.time;
var settings = {
url: oofUtil.paths.PASSPORT + '/?'+$.param(r.headers),
cache: false,
type: 'POST',
data: {data: r.body, goto: ''},
complete: processDec
};
oofUtil.bridge.passport(settings);
});
}
};
window.browserInterface = browserInterface;
帮你Debug了下登录逻辑,最终发现115网页登录会调用115浏览器的一个
windows.browserInterface接口,这个接口是浏览器自定义的。
所以如果你不能拿到浏览器的源码,那基本上没啥破解的可能性。