Как вы все, наверное, знаете: Cookies — это небольшие файлы, которые хранятся на компьютере пользователя. Они предназначены для хранения небольшого количества данных, специфичных для конкретного клиента и веб-сайта, и могут быть доступны как веб-серверу, так и клиентскому компьютеру.
Эти знания заставили меня задуматься о безопасности файлов cookie и задали мне несколько вопросов.
Поскольку я являюсь PHP-разработчиком, все вышеизложенные вопросы касаются PHP.
- Используются ли файлы cookie по умолчанию
Нет, куки отправляются в незашифрованном виде с любым значением, которое вы им установили.
- Если нет, как бы я зашифровал свои куки?
Шифрование пар ключ / значение или их шифрование для безопасного перехода между браузером и пользователем?
Для последнего используйте TLS (то же самое, что и SSL). В первом случае вам следует подумать о том, почему вы шифруете их — обычно нет необходимости отправлять их в браузер, если вы шифруете их самостоятельно.
- Помимо вышесказанного, файлы cookie шифруются, когда я использую SSL
Да, они зашифрованы во время транзита. Однако, если вы не установите Безопасный флаг, файл cookie будет передаваться в незашифрованном виде, если пользователь перейдет к http://
версия вашего сайта.
например если вы установите cookie на https://www.example.com
а затем пользователь просматривает или следует по ссылке на http://www.example.com
тогда печенье будет отправлено в открытом виде. Атакующий также может вызвать утечку cookie, установив MITM-соединение с другим сайтом, а затем внедрив <img src="http://www.example.com/foo.bar" />
на страницу, в результате чего браузер подключается к вашему сайту, отправляя все куки.
Вот почему рекомендуется всегда устанавливать Безопасный флаг, если вы хотите, чтобы куки были только HTTPS.
Используются ли файлы cookie по умолчанию
Нет.
Если нет, как бы я зашифровал свои куки?
Если вы хотите скрыть информацию от пользователя. Не помещайте это в печенье во-первых. Держите это на сервере. (И добавьте токен, который вы можете использовать, чтобы получить правильный файл информации в куки).
Если вы хотите скрыть информацию от сторонних злоумышленников. Используйте SSL.
Помимо вышесказанного, файлы cookie шифруются, когда я использую SSL
Все, что передается между сервером и клиентом (в обоих направлениях), шифруется при использовании SSL.