2015-01-27 1 views
0

Сохраняется ли это, что значения $_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_X_FORWARDED_FOR'] и $_SERVER['REMOTE_ADDR'] постоянны во время php-сессии? (До тех пор, как только использовать session_start() и не как-то упорствовать и загружать «ушедшие» сессии, конечно)

Почему я хочу знать?

Я все равно отслеживаю эти значения для каждой созданной сессии, главным образом для статистики. Но есть случаи, когда я явно должен хранить эти значения (например, подписку на электронную почту и подтверждение), которые могут иногда возникать во время сеанса. Поэтому я бы предпочел просто ссылаться на уже сохраненные «значения трассировки» и не назначать и сохранять их снова.

ответ

0

Соединительный IP-адрес $_SERVER['REMOTE_ADDR'] всегда будет доступен. Все остальное предоставляется через заголовки в веб-запросе и может быть легко изменено или вообще отсутствовать.

Так что в ответ на ваш вопрос - нет, небезопасно это допускать (за исключением IP).

+0

Хорошо, спасибо, пока ... но будет '$ _SERVER ['REMOTE_ADDR']' быть уникальным для каждой сессии php? Глупый пример, но может указать на мой вопрос: открытие веб-сайта в веб-браузере у себя дома, а затем перенос ноутбука на соседний и продолжение просмотра в том же окне/браузере после подключения к сети соседей. Отпустит ли php сеанс для повторного подключения? Закрытие браузера, т.е. запуск нового сеанса каким-либо образом. Для других полей, я думаю, мой вопрос довольно философский: Хранение когда-то срабатывает для «хороших парней», сохраняя непосредственно каждый раз, не помогая «плохим парням» ни ... – evilive

Смежные вопросы