楼主:
gn301046 (Doraemon)
2017-01-16 18:05:18我在试着尝试模拟登入学校的校务系统
但查了网络上有关Node.js模拟Post的方法
但却一直抓到登入画面而已,无法抓到登入后的东西
因此想请问各位大大我是否是哪里做错了呢
以下是我的程式码
var http = require("http");
var querystring = require("querystring");
var contents = querystring.stringify({
username: '帐号',
password: '密码'
});
var options = {
hostname: '学校网址',
host: '学校网址',
path: '路径',
method: 'GET',
headers:{
"Content-Length":contents.length,
"Content-Type":"application/x-www-form-urlencoded"
}};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
res.on('data', function (data) {
console.log('BODY:' + data);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
req.write(contents);
req.end();
这是抓出来的东西
http://imgur.com/a/j9rsL
method我会用Get是因为学校是用Get传资料
如果我用Post的话会显示 405 Method Not Allowed
所以才用Get的
作者:
s25g5d4 (function(){})()
2017-01-16 18:19:00method: 'GET' 你不觉得这行不对吗
是不是需要session啊,你观察你登入有没有用到
作者:
Hevak (Arthow Eshes)
2017-01-16 22:22:00你有没有用过浏览器开发者工具看你登入系统到底送什么东西比方说chrome的开发者工具的network那页,开着把preservelog打勾再开始做你的登入,看到底实际上送出什么request用什么参数。这样你才有一个比对的基准
作者: ninetyeight (98NINETYEIGHT) 2017-01-16 23:12:00
学校旧系统都是用frameset的框架 你会不会打错页了
先用fiddler观察一下封包 看是不是漏了什么cookie或是有的表单会有CSRF token如果是框架的话 可能要对iframe的连结再做request也有可能是判断user-agent 先观察下封包吧
作者:
s25g5d4 (function(){})()
2017-01-17 08:51:00哪间学校用 GET 传帐号密码 说出来让我们看一下
作者:
a0960330 (ViperLiu)
2017-01-18 22:02:00楼上+1....
method用post啊 你有看过帐密包在url上面的吗
我们以前大学,校务系统真的是用GET,每次老师在台上登入,我就在台下看着老师的帐号密码 还公立的
作者:
abby0302 (暗棋大战狂热患者)
2017-02-10 21:58:00我也有遇过校务系统用GET的不过后来被通报修掉了 国立大学XD