问题背景
某大学的课程系统不支持记住在线状态(保持时间很短),就算浏览器能记住密码,每次用也要手动点击一次登陆。现在想实现从书签点击进入就是系统首页的效果。
实现方案
在浏览器书签中增加一条书签,内容为
javascript:post('https://id.tsinghua.edu.cn/do/off/ui/auth/login/post/bb5df85216504820be7bba2b0ae1535b/0?/login.do',{i_user:'yourname',i_pass:'yourpassword',atOnce:true});function post(a,b){const c=(e,f)=>Object.assign(document.createElement(e),f),d=c('form',{action:a,method:'post',style:'display:none'});for(const[e,f]of Object.entries(b))d.appendChild(c('input',{name:e,value:f}));document.body.appendChild(d),d.submit()};
注意上面的内容不可含有空格和换行,如密码中含有单引号,请使用\转义,或将外部引号改为双引号。
其他说明
1. 有些浏览器不支持创建书签时手动指定地址,这种情况可以先随便找一个常规网页创建一个书签,然后再编辑书签标题和网址,输入上述javascript脚本即可。
2. 根据实际情况,请把脚本开头的网址(随着时间推移,登陆接入点可能会变更)、用户名、密码改成自己的内容。
3. 请注意书签可能会被其他使用该电脑的人查看,且密码将明文保存,请斟酌后使用。也可以考虑使用Javascript加密/混淆工具进行简单的处理后再保存成书签,这样可以一定程度上避免密码明文泄露。
4. 该方法的原理是利用浏览器书签发送POST请求,登陆接入点是通过浏览器调试工具抓取到的,较长时间内不会变化。某大学的登陆没有强制使用csrf票据,也没有强制使用token,不排除未来加入该机制后此方法失效。
5. 该POST脚本来自缓存的superuser帖子(链接),原帖地址(链接)当前已失效。类似帖子:(链接)。理论上,该脚本也可以用来登陆所有具有静态post接入点的系统。
关键词
POST 书签 网络学堂 免登陆 记住登陆
网友评论