Как можно создать скрытое поле ввода, чтобы передать техническую информацию на другую страницу?

Какие альтернативы существуют для передачи нескольких параметров на страницу action, чтобы информация осталась скрытой от пользователя и была недоступной для редактирования?
  • 10 февраля 2024 г. 15:38
Ответы на вопрос 3
Чтобы создать скрытое поле ввода и передать техническую информацию на другую страницу, можно использовать элемент `<input>` с атрибутом `type="hidden"` в HTML. Вот пример формы, содержащей скрытое поле ввода:

```html
<form action="путь_до_обработчика" method="post">
  <input type="hidden" name="скрытая_информация" value="значение">
  <!-- другие поля формы -->
  <input type="submit" value="Отправить">
</form>
```

В этой форме данные из скрытого поля (с именем `скрытая_информация` и значением `значение`) будут отправлены вместе с остальными данными формы на сервер по адресу, указанному в атрибуте `action`.

Альтернативы передачи скрытых данных:

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

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

3. Скрытые поля с подписью:
   Для предотвращения редактирования скрытых данных можно использовать специальную подпись (например, HMAC), которая позволяет серверу проверить, что данные не были изменены клиентом.

4. Веб-страницы защищенные логином:
   Параметры можно передавать на защищенные зоны веб-сайта, где пользователь должен войти в систему для доступа. Доступ к данным будет разрешен только после аутентификации.

5. AJAX/JavaScript:
   Можно использовать клиентский скрипт для отправки данных на сервер асинхронно без отображения информации в адресной строке браузера или доступа к ней со стороны клиента.

6. Серверные перенаправления:
   В некоторых случаях сервер может хранить данные и перенаправлять клиента на новую страницу, передавая параметры в процессе внутренних обработок на сервере.

7. Кодирование данных:
   Можно кодировать данные на стороне клиента перед отправкой на сервер. Это может быть полезно для предотвращения их понимания и редактирования, но не обеспечивает полную безопасность, так как кодирование можно обратить.

Необходимо помнить, что безопасность данных при передаче их на сервер является критически важной, и ни один из способов передачи не должен использоваться для конфиденциальной информации, если он не соответствует стандартам безопасности данных.
<blockquote>Какие могут быть варианты решения проблемы?</blockquote> <br/> Не выдумывать на ровном месте проблемы. Всё на стороне клиента можно отредактировать и подменить.
Тип hidden не подходит, потому что его можно редактировать? А что из html вы вообще можете НЕ редактировать? <br/> <br/> Вам тут стоит понять одну очень важную штуку: html/css/js образуют <b>client side</b> . Вы должны понимать, почему это называется вообще "Клиентом"? Потому что эта вся информация полностью загружается на клиента и он имеет к ней доступ. <br/> <br/> По этому существует <b>server side</b> - часть программной системы, к какой конечный пользователь не имеет доступа, в отличии от клиентской части. <br/> <br/> Цель сервера - обрабатывать запросы с клиента. Первое, что делает сервер с данными, которые ему отправил клиент - ВАЛИДИРУЕТ. Соответственно, если данные не валидны - запрос разворачивается обратно на клиента и отдаёт ему какую-то ошибку <br/> <br/> Это всё так, к слову. Вам важно понять, что клиент может редактироваться, вы никак не сможете этого избежать. Но этого не стоит бояться, т.к. то, за что вы переживаете должно обрабатываться на сервере. <br/> <br/> <b>Client side</b> должен обрабатывать данные перед отправкой на сервер (Но сервер обязан их повторно валидовать) и после получения данных от сервера для наилучшего представления ИХ конечному пользователю <br/> <br/> UPD: для справки. Вы можете полностью редактировать html в режиме реального времени, но он не будет сохранён для всех пользователей, а только для вас, т.к. эта часть загружается только два вас как для конечного пользователя. Сам html хранится на сервере и является <b>результатом работы сервера</b> . Эту часть html, что вы видите в браузере вы можете редактировать. <br/> <br/> Вы можете динамически подключать <b>стили</b> или их удалять. Можете менять <b>скрипты</b> , удалять их из сайта (Тогда отправка вообще работать не будет и, соответсвенно, отключится весь функционал, за который отвечаел скрипт) или добавить новые <b>скрипты</b> . А можете вообще написать свой скрипт прямо в консоли браузера и он будет работать. <br/> <br/> Проблема в том, что даже после элементарной перезагрузки страницы (Через Ctrl + R или другими способами) это всё будет утеряно и вам загрузится тот самый html/css/js, который является <b>результатом рабыты сервера</b> того сайта, который вы просматриваете
Похожие вопросы