我目前正在制作兩個不同但非常相似的基于 Web 的應用程序。所以我使用 PHP 和標準 MySQL(在我的例子中是 MariaDB,因為我使用 XAMPP,但我猜其中兩個彼此相似)。僅供參考,我正在本地服務器上構建我的應用程序,該服務器正好位于我的 PC 中。假設我的第一個項目是 Project1,它存儲在 localhost/project1 中。同時,Project2 在 localhost/project2 中。它們都具有針對不同帳戶/用戶的登錄功能。因此,當他們嘗試登錄時,我會這樣做。順便說一下,它是MVC。class Auth extends Controller { public function index() { // verification such as prevent raw attempt with no post data, etc. // verify the username and password, header back if fail, blablabla, u know... // and then the following is if succeeded $_SESSION['login'] = true; $_SESSION['id'] = // user id; }}我在我的兩個項目中都使用了類似的系統(tǒng)。問題所以我試圖弄清楚會話是如何工作的,我將自己登錄到 localhost/project1。然后我打開 localhost/project2。令我驚訝的是,我不需要在 localhost/project2 中輸入我的用戶名和密碼。我已經(jīng)登錄了。這些事情讓我有些擔心。所以這些是我的問題:發(fā)生這種情況是因為我在自己的計算機上的本地服務器上開發(fā)我的網(wǎng)站嗎?難道你們不認為任何人都可以通過在他們的服務器中創(chuàng)建一些簡單的程序 php 代碼來闖入我的網(wǎng)站,如下所示:$_SESSION['登錄'] =true; // 和其他會話然后只需訪問該文件,這使他們的會話登錄值為真,以及我使用的其他驗證會話索引,然后只需訪問我的網(wǎng)站并登錄,就像某個手里拿著大 AK-47 的人走進來一樣在沒有特工通知的情況下從白宮的正門將他拘留?為什么這真的發(fā)生了,你認為我應該如何解決它?我也有一些超時功能,所以我擔心任何大的變化都會打擾我的大部分建設,但任何建議都非常受歡迎。對不起,如果我的英語不好,或者我的 php 知識很可悲。我是新來的。
1 回答

Qyouu
TA貢獻1786條經(jīng)驗 獲得超11個贊
會話通常由包含您的會話 ID 的 cookie 驅動。由于默認情況下 cookie 在同一個域中共享,如果您有兩個項目都位于同一個主機/域(例如 localhost),并且都使用會話,那么它們將共享相同的 cookie,從而共享相同的會話數(shù)據(jù)。
這意味著某人無法通過在他們自己的站點中設置隨機會話來入侵您的站點。他們的會話數(shù)據(jù)僅適用于他們自己的站點。
附帶說明一下,建議用槍沖進白宮的類比通常不是一個好主意。只是一個友好的建議。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消