2011-08-02 38 views

回答

4

PHP是一種服務器端編程語言,$ _SESSION超全局只能在服務器上直接訪問。通過'正常的'php會話,SESSON超全局中包含的數據將通過cookie在瀏覽器和服務器之間來回傳遞。所以從技術上講,可以通過修改cookie來在Web瀏覽器中用Javascript修改會話。

但請注意,任何嘗試這樣做的嘗試都可能是一個糟糕的想法,而且很有可能是一種更簡單的方法來完成您想要做的任何事情。

編輯:這個問題我問可能是使用你 Codeigniter/PHP sessions security question

+2

修改cookie不會讓你改變會話超全球的值,但會讓你使用另一個會話(假設你猜對了一個正確的會話ID)。 – Jim

+0

我的擔心是**用戶**是否能夠更改此變量,以及我如何保護它。 –

+0

這是可行的,不簡單。我試圖回答這個問題:是否有可能。這是個好主意嗎?號碼 –

1

不完全是,但您可以使用AJAX進行模擬。只需編寫一個更改值的php文件,然後從AJAX調用它,只需執行它並更改該值即可。

希望這可以幫助你。

+0

我已經很熟悉了,因爲我已經使用它很長一段時間了,但是,我的擔心是用戶是否能夠更改此變量... –

+0

好的,我認爲這是我這樣做的方式... – elvenbyte

5

的SESSION超全局中的內容不能改變。它位於服務器上,客戶端無法訪問它。

但是,會話ID被傳遞給客戶端,以便當客戶端與服務器聯繫時,服務器知道要使用哪個會話。 該值可能會更改(請參閱Calums回答以防止此錯誤有關信息,請參閱http://php.net/manual/en/session.security.php)。這將允許用戶使用某人elses會話(但不會更改會話的值)。

+0

因此,使用某人的PHPSESSID,某人可以劫持他們的會話,但無法更改SESSION數組的內容? –

+0

@George正確,請參閱Calums回答以防止劫持。 – Jim

+0

@Jim這個着名的Calum的答案在哪裏? – carla

相關問題