[英]Is this the right way to start more secure session in PHP?
我是Web開發的新手,甚至還不熟悉會話。 我使用以下代碼在一個PHP文件中啟動會話,並將其包含在其他位置:
ini_set('session.cookie_lifetime', 0);
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_strict_mode', 1);
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 0);
ini_set('session.use_trans_sid', 0);
ini_set('session.cache_limiter', 'private_no_expire');
ini_set('session.hash_function', 'sha256');
session_start();
這是啟動會話以減少可能的會話攻擊(我不很熟悉,但我知道它們存在)的正確方法嗎?
編輯:是加入session_regenerate_id()
之后session_start()
以上,如果該文件包含在每個頁面過於頻繁再生會話ID? 我應該只在登錄過程中包含session_regenerate_id(true)
嗎?
如何設置會話選項:
php.ini解決方案
直接更改值
.htaccess解決方案
在documentroot上創建一個名為.htaccess
的文件(我相信,默認情況下,xampp中的文件為c:\\xampp\\htdocs
<IfModule mod_php5.c>
php_value session.cookie_lifetime 0
php_value session.use_cookies 1
php_value session.use_only_cookies 1
php_value session.use_strict_mode 1
php_value session.cookie_httponly 1
php_value session.cookie_secure 0
php_value session.use_trans_sid 0
php_value session.cache_limiter 'private_no_expire'
php_value session.hash_function 'sha256'
</IfModule>
PHP解決方案 (您需要在每個文件上設置此選項)
ini_set('session.cookie_lifetime', 0);
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_strict_mode', 1);
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 0);
ini_set('session.use_trans_sid', 0);
ini_set('session.cache_limiter', 'private_no_expire');
ini_set('session.hash_function', 'sha256');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.