2011-01-16 2 views
0

Я создаю многошаговую съемку и хочу сохранить данные в $_SESSION, прежде чем писать все в базу данных. Есть ли что-нибудь, что я должен делать с данными, прежде чем хранить их там с точки зрения безопасности?Сохранение данных POST на СЕССИИ

+0

Это просто данные. –

+0

Лучше безопасно, чем извините;) – NightHawk

ответ

4

Предполагая, что вы находитесь на обычных сеансах, основанных на файлах, тогда вам не о чем беспокоиться в представлении уязвимости инъекции. PHP позаботится о механизме чтения/записи файла сеанса, используя serialize() и тому подобное. Вещи, что бы вы ни пожелали в $ _SESSION, и это волшебство будет присутствовать при вызове следующей страницы.

Однако, с точки зрения более широкой безопасности, все, что входит в файл сеанса, может быть прочитано чем-либо еще, запущенным под тем же экземпляром веб-сервера (например, идентификатор пользователя Apache). Таким образом, вы не можете хранить конфиденциальные данные, пусть такие вещи, как номера кредитной корзины/cvv.

1

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

+0

до тех пор, пока переменные не передаются моей ссылкой и есть предостережение, используемое с объектами – RobertPitt

+0

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

+2

Это не значит, что мой ответ заслуживает голосования. Я не спорю, как он это делает, я просто ответил на его вопрос. Нет необходимости санировать данные перед тем, как поместить их в сеанс. Если он планирует повторно отобразить его или отправить по электронной почте, это его проблема, о которой нужно беспокоиться. Он ничего не упоминал. Просто сохраните его, когда они перейдут к следующим шагам. Полковник тролль снова наносит удар. – profitphp

3

хорошо, чтобы избежать проблем, восстановления данных, я предлагаю вам использовать имя для сеанса и использовать массив исключительно для почтовых данных, своего рода:

$ _SESSION [ «PostData»] = $ _ПОСЛЕ;

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