簡體   English   中英

這是在PHP中啟動更安全的會話的正確方法嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM