本帖最后由 howzew 于 2015-1-14 12:58 编辑
做一个模拟登陆的小程序
分析页面的时候,发现在页面中,点击登陆按钮后,会调用js代码,并且生成一些随机的东西提交到下一个页面。
[HTML] 纯文本查看 复制代码 <form id="command" name="form1" action="/IDMSWebAuth/authenticate" method="post" onsubmit=" return submitOnce(event); setFDC(); ">
<input id="iForgotNewWindowVar" name="openiForgotInNewWindow" value="false" type="hidden" value="false"/>
<input id="fdcBrowserData" name="fdcBrowserData" type="hidden" value=""/>
</form>
提交的时候,调用了setFDC()这个方法,通过分析,发现这个方法存在于A.js这个文件中
[JavaScript] 纯文本查看 复制代码 function setFDC(){
dcHelper.setData("fdcBrowserData");
}
接着分析dcHelper.setData()这个函数
发现来自于B.js文件中
[JavaScript] 纯文本查看 复制代码 window.dcHelper = new function () {
this.setData = function (c) {
var b;
a : {
b = document.getElementById(c);
if ("undefined" === typeof b || null === b) {
var a = document.getElementsByName(c);
"undefined" !== typeof a && (null !== a && 0 < a.length) && (b = a[0])
}
if ("undefined" === typeof b || null === b)
for (var a = 0, e = document.forms.length; a < e; a++)
for (var d = 0, f = document.forms[a], h = f.elements.length; d < h; d++) {
var g = f[d];
if (g.name === c) {
b = g;
break a
}
}
}
"undefined" !== typeof b && null !== b && (a = null, "undefined" !== typeof appidmsparm && null !== appidmsparm &&
(appidmsparm.appidmsform(c), null !== b.value && (a = b.value)), b.value = this.getData(a))
};
this.getData = function (c) {
var b = {};
b.U = navigator.userAgent;
b.L = window.navigator.language ? window.navigator.language : navigator.browserLanguage ? navigator.browserLanguage : "";
var a;
a = (new Date).getTimezoneOffset();
if ("number" !== typeof a || null === a)
a = "";
else {
var e = Math.abs(parseInt(a / 60, 10)),
d = Math.abs(a % 60);
a = "GMT" + (0 < a ? "-" : "+") + (10 > e ? "0" + e : e) + ":" + (10 > d ? "0" + d : d)
}
b.Z = a;
b.V = "1.1";
"undefined" !== typeof c && null !== c && (b.F = c);
return JSON.stringify(b)
}
};
像这种情况,我该如何在提交的时候,获取由js生成的数据呢(js生成的东西在下个页面post时需要用到)。
|