作者grassboy2 (活力花俏草兒仔政﹞O花俏)
看板PHP
標題Re: [請益] session資訊可以偽造嗎?
時間Mon Feb 23 01:39:04 2009
本著實驗的精神…隨手寫了一下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