2012-10-25 135 views
3

我有建立一個網站與登錄系統。剛剛準備好後,我用Acunetix掃描了它,但我收到以下消息:沒有HttpOnly會話Cookie標誌設置

沒有HttpOnly標誌的會話Cookie設置 沒有安全標誌的會話Cookie設置(我猜這隻有當我有SSL連接時)

所以我的問題是,我該如何爲所有會話數據設置HttpOnly標誌?我只是在登錄用戶時使用會話。我給他們一個使用userID號碼的會話,而不是使用該userID獲取數據。

是否有任何簡單的方法,我可以設置所有的會話HTTPOnly並保護它們,因此沒有人可以觸摸它們?

回答

7

您可以通過電話ini_set()在php.ini中更改設置或更改session.cookie_securesession.cookie_httponly的值爲true

或者,您也可以在開始會話之前使用session_set_cookie_params()以獲得您要查找的效果。

http://us3.php.net/manual/en/function.session-set-cookie-params.php

+0

如果我在php.ini設置,這將是安全的,這個問題將是解決呢? – user1406071

+0

是的,你應該通過安全掃描,一旦你有兩個ini值設置正確(無論是在php.ini或運行時通過提到的其他方法)。 –

+0

我在webmin看過我的php.ini,但沒有找到像session.cookie_httponly這樣的東西:(我有版本5.2,是否可以嗎? – user1406071

1

你應該檢查出this excellent site這個問題。歸結到一點,(或通過適當的運行功能)在你的php.ini的會議段設置它:

session.cookie_httponly = True 
0

你也可以只設置httponly標誌false當您使用PHP的setcookie

// params: name, value, expiration, path, domain, secure, http-only 
setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false); 
相關問題