看板 PHP 關於我們 聯絡資訊
本著實驗的精神…隨手寫了一下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
j87b0003 :更改應該機率很小,不過覺得要小心攔截 02/23 02:08
grassboy2 :樓上是指攔到PHPSESSID嗎? 02/23 03:21
chph :SESSION被修改有兩種情形, 一是同主機的其他程式 02/23 10:12
chph :二是主機被駭, 自然什麼都可以改了 02/23 10:12
chph :XSS 指的是冒用他人SESSION 02/23 10:13
john0227 :因為我session_start都是一開始就打了,所以是安全囉 02/23 11:05
grassboy2 :說到這個…我還沒測過session_auto_satrt的環境(抖) 02/23 12:51
sdcomputer :john0227 建議你再看一次chph大說的意思..XD 02/24 08:06