作者:
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