-
浅析中小学教师继续教育网计时功能 - [技巧攻略]
2009-05-16
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://gleisure.blogbus.com/logs/39500962.html
近日,见友人在“教育部全国中小学教师继续教育网”上“用功学习”(挂时间)。该学习系统每10分钟可以按“更新学习时间”按扭将学习计入服务器,若在20分钟内未更新学时会暂停计时,这样繁琐的功能肯定是防止恶意挂学时。
打开学习页面的源代码,是个框架页,上部是计时页面“BookShowTiming.aspx”,下部是课程页面。计时页核心源码如下:
var begintime;
var timer = null;
function DoConverseCallTimer() {
if(document.frmtimer.thzt.value == "") {
//alert("请输入倒计时开始的秒数!");
} else {
var minute="0";
var second="0";
//每1秒begintime值加1
begintime = parseInt(begintime)+1;
//计算分钟
minute = parseInt(begintime/60);
//计算秒数
second = begintime%60;
document.frmtimer.passedtime.value=minute;
if (minute>="10") {
//10分钟后允许按“更新学习时间”
document.frmtimer.update.disabled=false;
}
if(minute<"20") {
document.frmtimer.thzt.innerText =minute+"分"+second+"秒";
} else {
document.frmtimer.thzt.innerText =minute+"分"+second+"秒";
//20分钟后暂停计时
return;
}
//每1秒钟执行一次计时过程
timer1 = window.setTimeout("DoConverseCallTimer()",1000);
}
}
经试验,注入“begintime”值如700,点击“更新学习时间”,告知不要开启多个窗口学习,看来服务器对计时有验证,猜想:(1)每次“更新学习时间”时服务器记录时间,以便与下次更新时比较;(2)服务器在打开学习页面计入时间,并在“更新学习时间”提交数据给服务器时再比较;……第(1)种方法较好解决,可以在下次学习时弥补中断的时间;第(2)种方法就难了;……不管怎样,想个办法以模拟人工操作,这样只要电脑开着就能自动计时,网站又难识别是否作弊:注入代码,在“更新学习时间”铵扭可用时(或读取begintime值大小600时),执行数据提交操作。具体代码如下:
var eduTimePage = window.frames(0);function autoclick() {
if (eduTimePage.document.frmtimer.update.disabled==false) eduTimePage.__doPostBack("update", "");
var timer2 = window.setTimeout("autoclick()",2000);
}autoclick();
以上方法百试百灵。另经测试估计执行“__doPostBack()”函数会在服务器记录执行操作的时间,也就是上面猜想的第2种情况,进入课程时就会执行此函数,但仍可以避免通过执行该函数调用学习页面,只需事先记录学习页面地址(URL)进行直接访问,这样便能很容易通过刷入“begintime”值来挽回最多20分钟的学习时间,虽然不是很多,但没必要浪费嘛。
后记:搜搜网上是用什么办法的,有修改“begintime”值的,有制作了“学习时间加速专用浏览器”软件的;……未尝试,不晓得有没有用。
随机文章:
ProMaterials Library Installer 安装路径错误 2009-10-15都是键盘惹的祸 2009-07-13构建可视化手机程序(J2ME)编程平台 2009-05-31试用文件夹加密软件 2009-05-22扩展名识别修复工具 2009-04-11
收藏到:Del.icio.us








评论
我的QQ是357389044,谢谢!
我们这些菜鸟级的看不懂!!
javascript:var eduTimePage = window.frames(0);function autoclick() { if (eduTimePage.document.frmtimer.update.disabled==false) eduTimePage.__doPostBack("update", ""); var timer2 = window.setTimeout("autoclick()",2000);} autoclick();
非常感谢
javascript:void(begintime=1200);
便可修改当前页面的begintime的值。