Оглавление:
Видео: PHP для хакера | Урок 22. Безопасность cookie 2024
Вы, несомненно, видели веб-сайты, в которых используются файлы cookie, чтобы отслеживать, кто вы, возможно, приветствуя вас после входа в систему или предоставления вам пользовательской информации о вашей учетной записи после входа в систему. Вы можете использовать сеансы PHP и файлы cookie для этого, включая отправку данных в форме с каждым запросом.
Но это не безопасно и недостаточно гибко для сегодняшних веб-приложений. К счастью, есть лучший способ - и это прямо у вас под рукой: сеансы.
Сессии PHP
Сессия в PHP - это безопасный способ отслеживания пользователя со страницы на страницу. С помощью сеанса вы можете хранить информацию о пользователях, такую как их адрес электронной почты, имя, номер телефона и любые другие данные, которые у вас есть, и автоматически заполнять эту информацию везде, где это необходимо на сайте.
Например, скажем, что при входе вы загружаете имя пользователя и адрес электронной почты из своей пользовательской базы данных. Вы можете сохранить эту информацию в сеансе, по сути скрытом от пользователя, до тех пор, пока вы его не используете.
Вы используете переменные сеанса, как и любые другие переменные. За кулисами сеансы хранятся в массиве с именем $ _SESSION. Вы храните значения так же, как и с именованным массивом в PHP. Например, вы можете отслеживать адрес электронной почты и имя, подобное этому:
$ _ SESSION ['emailAddress'] = "me @ example. Com"; $ _SESSION ['firstName'] = "Steve";
Вы также можете использовать сеансы для отслеживания информации, заполненной в веб-форме, без необходимости переносить эту информацию через сайт в скрытых переменных формы.
Файлы cookie PHP
Сеансы передаются в куки-файлы браузера, , которые представляют собой немного лишних битов информации, которые отправляются в веб-браузер и из него. Фактические биты информации или то, что эти бит на самом деле, зависит от вас, программист.
Например, вы можете отправить файл cookie, содержащий имя пользователя. Затем файл cookie может быть сохранен на компьютере пользователя, и в следующий раз, когда она посещает сайт, cookie будет отправлен в вашу программу, после чего будет представлено персональное приветствие.
Однако файлы cookie похожи на любые другие данные, которые вы получаете от пользователя - данные из файлов cookie должны быть подвергнуты санитарной обработке, потому что им нельзя доверять. Другими словами, как только ваша программа отправит cookie в браузер посетителя, посетитель может отредактировать или изменить этот файл cookie, чтобы быть тем, что он хочет.
Итак, если вы (веб-разработчик) используете cookie для хранения имени пользователя, посетитель может изменить имя пользователя на все, что захочет, а затем отправить его обратно в вашу программу.
Возможность редактирования пользователями своих файлов cookie в значительной степени решена путем простого использования сеансов.Когда создается cookie сеанса, он использует хэш-значение , , которое является длинной строкой символов. Это означает, что даже если пользователи изменяют значение cookie, другими словами, если они меняют этот хэш, они не меняют ничего, что вы используете в своей программе напрямую.
Вместо этого PHP обрабатывает перевод этого хэша из файла cookie от вашего имени, а затем вы можете заниматься бизнесом использования вещей в массиве $ _SESSION. Фактические значения, которые вы храните в массиве $ _SESSION, никогда не видны пользователю; они существуют только на сервере.
Конечно, использование сеансов с cookies означает, что файлы cookie должны быть включены в браузере пользователя. Если это не так, пользователь не может использовать приложение.