我有一個網絡應用程序由少數人使用(僅限內部使用),並使用存儲在用戶記錄下並放置在各種鏈接中的隨機sessionID。如何在CGI Perl中防止用戶會話劫持?
我遇到了一個問題,那就是用戶發送鏈接給對方,讓他們劫持發件人的會話。
有什麼方法可以防止這種情況發生,同時讓用戶互相發送鏈接?
編輯: 鏈接中的會話ID(也包含$ username)僅與用戶表中存儲的內容進行比較。 &不正確的登錄只是輸出錯誤,然後死亡;
if ($sid) {
$sth = $dbh->prepare("SELECT * FROM tbl_User WHERE UserID = '$username'");
$sth->execute();
$ref = $sth->fetchrow_hashref();
$session_chk = $ref->{'usr_sessionID'};
unless ($sid eq $session_chk) {
&incorrectLogin;
}
}
問題是,如果有人使用由其他人創建的鏈接,頁面將以它們的形式加載。我沒有使用cookies,並且我記得在過去被告知CGI perl cookie處理很差。
我們需要了解更多。你使用什麼進行身份驗證?你是否在用戶的機器上設置了cookie?你爲什麼使用查詢字符串sessionId?我們可以看到一些代碼嗎? –
啊,我的道歉。我在原帖中增加了一些額外的信息。 – Gnippots