Ste*_*eve 28 php security session-cookies
什么是在PHPSESSID cookie上设置httponly和安全标志的推荐方法?
我找到了http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly.有更好的建议吗?
谢谢
小智 20
ini_set('session.cookie_httponly', 1);
Run Code Online (Sandbox Code Playgroud)
all*_*err 18
我无法获得安全标志session_set_cookie_params(...),所以我做的是,在session_start()设置PHPSESSID cookie之后,我重置它setcookie(...).最后一个参数true,使cookie具有安全标志.
<?php
session_start();
$currentCookieParams = session_get_cookie_params();
$sidvalue = session_id();
setcookie(
'PHPSESSID',//name
$sidvalue,//value
0,//expires at end of session
$currentCookieParams['path'],//path
$currentCookieParams['domain'],//domain
true //secure
);
?>
Run Code Online (Sandbox Code Playgroud)
当我在Firefox中检查PHPSESSID cookie时,其"发送"属性设置为"仅加密连接",其"过期"属性设置为"会话结束时".
Joh*_*han 13
在我看来,最好的将是:http://www.php.net/manual/en/function.session-set-cookie-params.php
void session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] )
Run Code Online (Sandbox Code Playgroud)
自PHP >=7.0以来更优雅的解决方案
session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
Run Code Online (Sandbox Code Playgroud)