Должен ли я слепо доверять данным на стороне клиента в веб-приложении?

#jsp #spring-mvc #web-applications

#jsp #spring-mvc #веб-приложения

Вопрос:

У меня есть страницы JSP / HTML на стороне клиента в моем веб-приложении. Предположим, у меня есть <select> элемент управления со всеми названиями стран. При нажатии кнопки отправки она перейдет на серверный контроллер spring controller и будет обработана ими.

Теперь мой вопрос в том, должен ли я проверять название страны на стороне сервера или я должен верить, что country это поле будет иметь допустимое значение, поскольку оно из select ?

Комментарии:

1. Никогда не доверяйте клиенту, точка.

Ответ №1:

  1. Нет, вы не должны доверять вводу данных клиента.
  2. Вы должны использовать идентификатор страны (используйте код ISO 3166-1 alpha-2), а не имя, на случай, если вы интернационализируете свое приложение позже.
  3. Если вы сохраняете вводимые клиентом данные в базе данных, убедитесь, что в коде страны, который они вводят в таблицу со всеми кодами стран, есть внешний ключ. Таким образом, их неверный ввод вызовет исключение, и вы сможете отобразить для них сообщение об ошибке. Убедитесь, что вы параметризовали свои SQL-инструкции для базы данных.