2009-08-21 2 views
0

ive слышал несколько времен, что сеансы необходимо очищать с помощью mysql_real_escape_string или htmlspecial символов, потому что они могут быть изменены. что им интересно, как они изменяются, потому что, когда я смотрю на сеанс веб-сайтов с именем PHPSESSID, его значение всегда зашифровывается.несколько вопросов относительно сеансов php

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

спасибо.

ответ

5

Их нельзя изменить, они хранятся на сервере. PHPSESSID - это просто идентификатор, он не зашифрован, а генерируется случайным образом (поэтому он уникален для каждого пользователя). Люди захватывают сеансы, крадя файл cookie PHPSESSID, как правило, через атаку скриптов с использованием межсайтового сайта. Прочтите ответ на этот вопрос для хорошего резюме сеансов в php - What do i need to store in the php session when user logged in

0

Сессии хранятся на сервере. Это означает, что все данные хранятся во временных файлах и удаляются через x времени. Браузер не сохраняет данные сеанса. Он хранит идентификатор сеанса, который сервер использует для получения правильного временного файла.

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

Читайте дальше на захвате сессии here.

0

Вещь, которую можно изменить, - это идентификатор сеанса, отправленный вам клиентом. Таким образом, как и во всех предоставленных пользователем данных, это нужно «очистить», прежде чем использовать его в любом месте, например, с помощью mysql_real_escape_string, прежде чем вставлять его в базу данных MySQL.

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