PHP - альтернатива скрытому вводу html

Мне нужно повторно отправить значение из предыдущей html-формы в другой форме, чтобы его можно было использовать как часть подготовленного оператора SQL.

Однако я не очень хочу использовать скрытый ввод html из-за потенциальных проблем с безопасностью.

Кто-нибудь знает другой метод?

Спасибо.


person Daniel West    schedule 23.02.2011    source источник


Ответы (3)


Временно сохраните значения в сеансе.

Однако скрытые входные данные HTML не должны вызывать проблем с безопасностью, если вы должным образом проверяете их (снова) перед помещением в базу данных.

person deceze♦    schedule 23.02.2011
comment
При использовании сеансов рассмотрите возможность создания случайного ключа для значений, передачи ключа в форму и доступа к данным сеанса на основе ключа. Если вы этого не сделаете и будете использовать статические идентификаторы, поток вашей формы будет испорчен, если пользователь будет делать разные вещи на нескольких вкладках. - person Pekka; 23.02.2011
comment
Да, это одна из причин, почему я не слишком увлекался использованием сессий для решения этой проблемы. - person Daniel West; 23.02.2011

Вы можете сохранить его в сеансе, тогда пользователь никогда не см. значение.

person cambraca    schedule 23.02.2011
comment
Определенно лучший вариант, чем скрытый ввод - person Daniel West; 23.02.2011

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

Однако у вас есть другие варианты, если вы не хотите использовать скрытый элемент формы:

  1. Сохранение значения в переменной $_GET (не рекомендуется, виден в адресной строке)

  2. Использование файла cookie для хранения переменной (пользователь может отключить файлы cookie)

  3. Использование сессий для хранения переменной на стороне сервера

person Tim Cooper    schedule 23.02.2011
comment
Я подумал, что это может быть потенциальной проблемой безопасности, например, при использовании <input type="hidden" name="frompreviousform" value="$value" /> ничто не мешает кому-то сохранить html-страницу и отредактировать ее или использовать какую-то инъекцию javascript. - person Daniel West; 23.02.2011
comment
Ничто не мешает пользователю отправлять любые значения формы, которые он хочет, на ваш сервер. Ему не нужна HTML-форма, чтобы отправить ее на ваш сервер. Просто убедитесь, что вы экранируете $value, так как он может содержать мошеннический код, который будет внедрен на вашу HTML-страницу. - person Tim Cooper; 23.02.2011
comment
Это правда, это значение в основном является первичным ключом таблицы в моей базе данных и будет когда-либо использоваться только для запросов к базе данных, и я уже рассмотрел SQL-инъекцию. - person Daniel West; 23.02.2011