Re: [請益] session資訊可以偽造嗎?

看板PHP作者 (活力花俏草兒仔政﹞O花俏)時間17年前 (2009/02/23 01:39), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串4/4 (看更多)
本著實驗的精神…隨手寫了一下code… 以下是測試的code… <?php if($_SESSION["crack"]=="haha"){ echo "真的可以變造SESSION!!!"; } else { echo "別再相信沒有根據的說法了= ="; } echo "<br>"; session_start(); if($_SESSION["crack"]=="haha"){ echo "真的可以變造SESSION!!!"; } else { echo "別再相信沒有根據的說法了= ="; } ?> 以上…若檔名為crack.php,呼叫http://localhst/crack.php?_SESSION[crack]=haha 在 register_globals = Off的環境結果如下… 別再相信沒有根據的說法了= = 別再相信沒有根據的說法了= = 但在 register_globals = On的環境結果如下… 真的可以變造SESSION!!! 別再相信沒有根據的說法了= = 所以…根據上列簡單的實驗… 可以推出的結論是… 主機發給每個client的session並沒有被改到… session_start()之後,主機才會去抓對應到該client的session 並且把原本在url指定的 $_SESSION 給蓋掉… (而且要指定還要對方主機有開register_globals) 所以…結論中的結論… $_SESSION 無法由client端改掉......吧?! (其實我也不確定…因為搞不好是我的實驗方法有誤降子^^") 以上…騙騙p幣XDDD (逃) --- 不過看到SESSION有可能被改真的嚇到我了(抖) ※ 引述《buganini (霸格尼尼)》之銘言: : ※ 引述《louis60401 (願晴)》之銘言: : : → john0227 :用戶或駭客有辦法可以自己創立或修改session變數嗎? 02/22 10:14 : : 可以. : : ?_SESSION[變數名稱]=值 : : 意思就是說你要預防你的SESSION變數名稱被發現. : : 但是要在這方面下功夫 : : 到不如想一下要如何驗證值是不是被改了 : : 或是乾脆讓值被改了也沒關係. : 看不太懂這一串討論@@ : session不是存在server端嗎? : client如何偽造? : 頂多是hijack吧 : 還是你們說的session跟我想的不一樣@@a -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.87.171

02/23 02:08, , 1F
更改應該機率很小,不過覺得要小心攔截
02/23 02:08, 1F

02/23 03:21, , 2F
樓上是指攔到PHPSESSID嗎?
02/23 03:21, 2F

02/23 10:12, , 3F
SESSION被修改有兩種情形, 一是同主機的其他程式
02/23 10:12, 3F

02/23 10:12, , 4F
二是主機被駭, 自然什麼都可以改了
02/23 10:12, 4F

02/23 10:13, , 5F
XSS 指的是冒用他人SESSION
02/23 10:13, 5F

02/23 11:05, , 6F
因為我session_start都是一開始就打了,所以是安全囉
02/23 11:05, 6F

02/23 12:51, , 7F
說到這個…我還沒測過session_auto_satrt的環境(抖)
02/23 12:51, 7F

02/24 08:06, , 8F
john0227 建議你再看一次chph大說的意思..XD
02/24 08:06, 8F
文章代碼(AID): #19eOswuI (PHP)
文章代碼(AID): #19eOswuI (PHP)