многостраничные формы и СЕССИИ против скрытых данных формы - PullRequest
4 голосов
/ 01 марта 2010

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

Сайт должен быть на 100% не-JS-совместимым, поэтому Ajax и т.п. недоступны. Все, что я получил, это PHP, детка!

Содержание

FORM-2 зависит от доли данных в FORM-1, но ВСЕ данные в FORM-1 также должны быть представлены с окончательным запросом, содержащимся в FORM-2

Мне пришло в голову, что я могу выполнить передачу данных от FORM-1 до FORM-2 двумя различными способами:

1) ПОСТАВИТЬ переменные данные FORM-1 в СЕССИЮ
2) ПОСТАВЬТЕ переменные FORM-1 в скрытые поля на FORM-2

Они кажутся примерно одинаково сложными / простыми в реализации, поэтому меня интересует безопасность и тому подобное ...

Кроме того, в любом случае, если мне FORM-1 -> FORM-2 -> Results не нравятся мои результаты, могу ли я Back Button дважды до FORM-1 и при этом все данные проверить, записать и т.д.?

1 Ответ

5 голосов
/ 01 марта 2010

Технически, сеансы нарушают "не сохраняющую состояния" природу сети, и другой вариант предпочтительнее. Если безопасность или опасность того, что кто-то отправит форму 2 со своего собственного сервера с самостоятельно созданными значениями для формы 1, действительно являются проблемами, вы можете зашифровать данные при отправке формы 1 и сохранить зашифрованные данные в скрытом поле в форме 2. библиотеки mcrypt - у меня есть пример кода).

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

Но на самом деле почти все используют сессионные куки почти все время. Это намного проще, есть много примеров, и это относительно безопасно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...