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

Веб-программирование 25 февраля 2019 г., 10:47

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

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

Подробно о XSS и похищении данных можно почитать:

https://developer.mozilla.org/ru/docs/Web/HTTP/Куки#Безопасность

Как использовать:

во время установки COOKIE указывать атрибут httpOnly.

PHP

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

устанавливать 7 атрибут в true

setcookie('Foo','Bar',0,'/', 'www.sample.com' , false, true);

или в заголовке

header("Set-Cookie: name=value; httpOnly");

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

<?php
ini_set('session.cookie_httponly', 1);

 

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

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

 

Теги: 0


Станьте первым!

Пожалуйста, авторизуйтесь или зарегистрируйтесь для комментирования!

Яндекс.Метрика