我正在开发一个文件托管和共享网络应用程序。
以下 PHP 会话设置是否足够安全?
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_lifetime', 0);
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.hash_function', 'whirlpool'); //is whirlpool that necessary?
ini_set('session.use_only_cookies', 1);
ini_set('session.hash_bits_per_character', 5);
ini_set('session.cookie_secure', 1);
session_name('sid');
session_start();
if (!isset($_COOKIE['sid'])) {
$_SESSION['token'] = CryptoCharGen::alnum(); //20 chars
}
要增加安全性:
- 将加密的强 CSRF 令牌绑定到用户会话以进行表单验证。
- 在登录和注销并销毁旧会话时重新生成新会话 ID。
- 成功提交任何表单后重新生成新的 CSRF 令牌。
我已阅读重命名默认 PHP 会话名称,所以我sid改为命名它。这够好吗?
我应该使用自己的生成器生成会话 ID 吗?(CryptoCharGen)
我应该关心如何命名会话变量吗?