Какой рекомендуемый способ установить httponly и безопасные флаги в файле cookie PHPSESSID?
Я нашел http://www.php.net/manual/en/session.configuration.php#ini.session.cookie-httponly . Любые лучшие предложения?
благодаря
На мой взгляд, лучшим было бы: 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 ]]]] )
Мне не удалось получить безопасный флаг, работающий с session_set_cookie_params(...)
, поэтому я сделал это после того, как session_start()
установил cookie PHPSESSID, я setcookie(...)
его с помощью 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 ); ?>
Когда я проверил файл cookie PHPSESSID в Firefox, его свойство «Отправить для» было установлено только «Зашифрованные подключения», а для свойства «Истекает» было установлено значение «В конце сеанса».
ini_set('session.cookie_httponly', 1);
больше информации здесь, в документах PHP
Я использую Apache httpd через HTTPS, устанавливаю session.cookie_httponly = 1
и session.cookie_secure = 1
работает для меня.
Если вы используете Apache, попробуйте это на вашем .htaccess
php_value session.cookie_httponly 1