#php #mysql #flash #cookies #security
#php #mysql #flash #файлы cookie #Безопасность
Вопрос:
У меня очень, очень плохое понимание безопасности и безопасности при создании веб-сайтов — то, что я хочу сделать, это сохранить информацию, которую пользователь вводит для входа в файл cookie, чтобы я мог сделать две вещи:
- Проверьте cookie из flash (через файл php), чтобы получить информацию о вошедшем в систему пользователе (если он вообще есть). Это будет использоваться для API-интерфейсов highscore и т. Д.
- Автоматически регистрируйте пользователя, когда он возвращается на мой сайт.
На самом сайте на самом деле нет никакой важной информации и т. Д., Поэтому я имею в виду, что он не должен быть самым безопасным на земле (или даже близко). Но я бы хотел, чтобы это не было подделано, если это возможно.
Насколько я понимаю, хранение информации о пользователе в файле cookie может быть плохим, потому что пользователь может просто изменить файл cookie и войти в систему как кто-то другой.
Я подумал; достаточно ли безопасно делать что-то подобное?:
- Когда пользователь входит в систему, сохраните MD5’d версию своего адреса электронной почты (используется для входа в систему). Таким образом, по крайней мере, крайне маловероятно, что они смогут изменить информацию, чтобы отразить другого пользователя в базе данных.
- Поскольку кто-то может просто указать адрес электронной почты MD5, который, как он знает, кто-то другой использует для сайта, и изменить свой файл cookie, чтобы отразить это, должен ли я, возможно, сохранить их пароль MD5 вместе с ним, а затем использовать их для попытки входа в систему на каждой странице? Единственное, что кажется, что это будет медленно / нестратегично, потому что для этого необходимо в основном повторно входить в систему с информацией в файле cookie на каждой странице.
Этот подход, вероятно, кажется действительно странным, но будет ли он работать нормально? Основное требование, которое у меня есть, заключается в том, что если пользователь зарегистрировался на моем сайте, игра в мои флеш-игры в любом месте в Интернете автоматически обнаружит, что они вошли в систему, и будет работать с их информацией.
Ответ №1:
Используйте сеансы PHP.
Php сохраняет идентификатор сеанса в cookie в браузере, а все остальное в сеансе хранится на сервере. Ваш флэш-скрипт должен иметь возможность использовать идентификатор сеанса из этого файла cookie, и, возможно, вы можете написать php-файл, который вернет информацию, необходимую для флэш-файла, когда флэш-файл передается в идентификатор сеанса?
Поскольку идентификаторы сеансов более или менее случайны, пользователю сложно изменить свой файл cookie сеанса и случайно получить доступ к логину другого пользователя.
Комментарии:
1. Звучит знакомо, как мне работать с файлом cookie, который создает сеанс? Я даже не знаю, как получить к нему доступ.
2. Это просто обычный файл cookie браузера. Я думаю, что PHP использует имя файла cookie по умолчанию «PHPSESSID», но это можно изменить в ваших PHP-скриптах.
3. У меня возникли проблемы с поиском информации об этом, кроме расплывчатых ссылок на «сеанс на основе файлов cookie» в php.net . Если у вас есть какие-либо ресурсы / учебные пособия, я приму этот ответ.
4. Почему вы не создаете страницу в своем домене с помощью start_session(); а затем просматриваете вновь созданный файл cookie? Файлы cookie используются ТОЛЬКО в сеансах PHP для хранения идентификатора сеанса. Все соответствующие данные хранятся на сервере и доступны пользователю, предоставляющему свой session_id из своего файла cookie. Ответ iWantSimpleLife точен.
5. ДА. Вам нужно будет создать страницу php на сервере, которая получает доступ к данным сеанса. Эти данные доступны только серверу, а не браузеру. Браузер может получить только идентификатор сеанса из файла cookie (и ничего больше).