腾讯面试题2
1、首先给一个地址http://pay.qq.com/include/login\_box.html?url=http://pay.qq.com/
有工具 比如 firefox 、 google chrome 等网页代码查看工具。要求用一段 js 实现下列功能已知 用户名 和 明文密码,实现 提交的过程,如果中间出现校验码,捕获校验码的图片。
答:首先找出iframe的src是
http://ui.ptlogin2.qq.com/cgi-bin/login?appid=11000101&f\_url=loginerroralert&hide\_title\_bar=1&link\_target=blank&ep=http://pay.qq.com/cgi-bin/login/qqacctlogin.cgi&s\_url=http://pay.qq.com/&qlogin\_jumpname=payjump&qlogin\_param=url%3Dhttp://pay.qq.com/
通过这个页面能查到js具体功能由这个实现,加载图片的函数οnlοad=’imgLoadReport()’就在这里
http://imgcache.qq.com/ptlogin/ac/v9/js/comm.js?v=1.2.5
校验函数ptui_onLogin
JScript code
functionptui_onLogin(A){
try{ if(parent.ptlogin2_onLogin){
if(!parent.ptlogin2_onLogin())
{ returnfalse}}
if(parent.ptlogin2_onLoginEx){
varD=A.u.value;varB=A.verifycode.value;
if(str_uintip==D) {D=””}if(!parent.ptlogin2_onLoginEx(D,B)){ returnfalse}}
}catch(C){}
returnptui_checkValidate(A)
}
通过这个函数,貌似图片的信息会赋值给A.u这个label,然后校验你输入的A.verifycode.value和它是不是相同
解决的思路是
调用imgLoadReport,取到A.u即image里的值
调用submit
具体细节大家感兴趣再研究下吧
输入QQ号或者是QQ绑定的邮箱,当输入框失去焦点后,会进行验证以确定是否需要验证码(验证码的形式分两种,一种是生成一个图片,需要用户输入指定的字符,一种是程序返回时自带验证码,不用用户输入;有一种情况是不会触发请求的:清空输入框后,重新输入相同的字符串)
输入密码
如果需要,输入验证码
提交表单(这一过程中会将密码和验证码合并加密)
整个过程中的请求都是用
还没有评论,来说两句吧...