Найти тему
Ярослав Миравеб

Используйте безопасные COOKIE.

Во время разработки, мы часто используем COOKIE для хранения важной информации, такой как токены авторизации, разные ключи и т. д. Но даже в самых защищенных системах, из-за человеческого фактора, можно допустить возможность выполнения XSS-атак, что может привести к утечке важных данных.

Классическая атака, когда через XSS похищается токен авторизации и потом злоумышленник может войти в систему. Для этих целей, в современных браузерах существует защита: атрибут httponly — который указывает, что cookie с таким атрибутом нельзя передавать скриптовому языку, например Javascript.

Как установить безопасные COOKIE?

В PHP установка безопасной COOKIE делается через указание 7 атрибута как true в setcookie или setrawcookie:

setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);

Пример использования:

setcookie('token','1281b9efe393b350f348e05a694a6a3d', 86400, '/', 'www.jelu.ru' , false, true);

Так же, можно принудительно ставить все COOKIE с httpOnly через глобальные настройки, но тогда вы не сможете сами работать с COOKIE через Javascript.

ini_set('session.cookie_httponly', 1);

В заключение хочется напомнить, что данная мера не является 100% гарантией защиты от кражи данных, по-этому лучше проверять все данные вводимые пользователями и относиться к любым внешним данным с подозрением, валидируя и проверяя их.

PS: COOKIE тоже являются внешними данными и их тоже необходимо проверять и валидировать!

Статья взята из моего личного блога: https://www.jelu.ru/post/ispolzuyte-bezopasnye-cookie.html