У меня есть joust построил веб-сайт с системой входа. После того, как я только что был готов, я просмотрел его с помощью Acunetix, но получил следующее сообщение:
Session Cookie без установленного флага HttpOnly Session Cookie без установленного флага безопасности (думаю, это только если у меня есть SSL-соединение)
Итак, мой вопрос: как я могу установить флаг HttpOnly для всех моих данных сеанса? Я просто использую сеансы, когда я регистрирую пользователей. Я даю им сеанс со своим номером идентификатора пользователя, и я получаю данные с использованием этого идентификатора пользователя.
Есть ли простой способ, которым я могу установить ВСЕ сеанс HTTPOnly и защитить их, чтобы никто не мог их трогать?
Вы можете либо изменить настройки в php.ini, либо через вызовы ini_set()
чтобы изменить значения session.cookie_secure
и session.cookie_httponly
на true
.
В качестве альтернативы вы можете использовать session_set_cookie_params()
перед началом сеанса, чтобы получить эффект, который вы ищете.
http://us3.php.net/manual/en/function.session-set-cookie-params.php
Вы должны проверить этот отличный сайт для этого вопроса. Это сводится к установке его в секцию сессий вашего php.ini (или через соответствующую функцию времени исполнения):
session.cookie_httponly = True
Вы также можете установить флаг httponly
в false
когда используете setcookie
PHP:
// params: name, value, expiration, path, domain, secure, http-only setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false);