我是在site.I的管理員想取消設置一個特定的會話,我知道它的會話ID取消設置一個specefic會話中使用的會話ID
的用戶只是說出這樣
session_id("usernumber");
session_start();
會議假設用戶A的用戶編號爲「123」 我想破壞用戶A的所有值,用戶A在設置爲session_id(「123」)後不會重新生成sessio_id()。
我該如何取消用戶A的銷燬?
我是在site.I的管理員想取消設置一個特定的會話,我知道它的會話ID取消設置一個specefic會話中使用的會話ID
的用戶只是說出這樣
session_id("usernumber");
session_start();
會議假設用戶A的用戶編號爲「123」 我想破壞用戶A的所有值,用戶A在設置爲session_id(「123」)後不會重新生成sessio_id()。
我該如何取消用戶A的銷燬?
無反向ENGINERING會話處理器....
<?php
session_id($_GET['killsid']);
session_start();
session_destroy() || die "failed to kill";
對我而言不適用 – delive
工作正常。雖然,@Hardik Sondagar的代碼更適合安全實現。 –
據我所知,唯一受默認會話處理程序支持的方式是使用session_id("usernumber");
模擬用戶,然後刪除這些值。
你也可以store sessions in a database,這將使這一切都非常簡單,但你需要編寫自己的會話處理代碼。
順便說一句,會話ID應該是一個很長的隨機字符串,你猜不到。使用123
意味着任何匿名訪問者都可以使用任何用戶憑證輕鬆登錄。
您可以嘗試獲取session_save_path()(在此目錄中存儲會話文件)。 使用默認會話名稱時,文件名看起來像sess_jgimlf5edugvdtlaisumq0ham5,其中jgimlf5edugvdtlaisumq0ham5是用戶會話ID,因此您可以取消該鏈接,除非您沒有權限編輯這些文件。
作品! ($ session_id){ unlink(session_save_path()。'/ sess_'。$ session_id); } – realmag777
$session_id_to_destroy = 'nill2if998vhplq9f3pj08vjb1';
// 1. commit session if it's started.
if (session_id()) {
session_commit();
}
// 2. store current session id
session_start();
$current_session_id = session_id();
session_commit();
// 3. hijack then destroy session specified.
session_id($session_id_to_destroy);
session_start();
session_destroy();
session_commit();
// 4. restore current session id. If don't restore it, your current session will refer to the session you just destroyed!
session_id($current_session_id);
session_start();
session_commit();
這個很棒。正是我在找的東西,所以你可以踢別人離開系統。 – geilt
快速查看該文檔顯示:['session_unset()'](HTTP:// WWW。 php.net/manual/function.session-unset.php)。 – Tomalak
女巫方式的用戶登錄?或者只是打開會話處理程序的網站? – Subdigger
此評論可以幫助你:http://www.php.net/manual/en/function.session-destroy.php#95809 –