Set httpOnly and secure on PHPSESSID cookie in PHP
ini_set('session.cookie_httponly', 1);
more information here on the PHP docs
I was unable to get the secure flag working with session_set_cookie_params(...)
, so what I did was, after session_start()
set the PHPSESSID cookie, I reset it with setcookie(...)
. The final parameter, true, makes the cookie have a secure flag.
<?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
);
?>
When I checked the PHPSESSID cookie in Firefox, its 'Send for' property was set to 'Encrypted connections only' and its 'Expires' property was set to 'At end of session'.
In my opinion the best would be: 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 ]]]] )