@CyFox

Ruby on Rails можно ли запретить изменения значений формы (составленной form_for) в браузере?

Допустим у нас есть модель с записями, id которых: 1, 2, 3, 4, 5, 6. Эти записи могут быть добавлены в список (select). Но для определенных объектов другой модели, для которых создается форма не нужно добавлять весь набор этих значений, а например добавить только 2, 3, 6. Остальные значения неприемлемы.

Для чего создаем select со значениями 2, 3, 6 для одной формы. Однако остается возможность открыть html код страницы и изменить значение (value) тега option в select'e на любое другое и отправить (commit) форму с измененным значением, которое контроллер примет без проблем. В результате чего получим неприемлемую запись в БД.

Возможно ли защитить форму (form_for), от изменения значений (value) пользователем в браузере?
Или же нужно прописывать собственную валидацию на уровне модели или прописывать исключения в контроллере (учитывая то, что фактически придется повторить код, выбирающий приемлемые значения для составления select'а )? Попробовал гуглить, но по этому вопросу информации не нашел.

Буду рад услышать предложения и рекомендации по данному вопросу.
  • Вопрос задан
  • 242 просмотра
Решения вопроса 1
Jeiwan
@Jeiwan
1. Всё, что находится в браузере пользователя, принадлежит пользователю, и он может делать с этим всё, что захочет. Вы же не можете через Рельсы запретить пользователю редактировать файлы на своем компьютере?
2. Все данные, введенные пользователем в формы, нужно дополнительно проверять на сервере. То есть, если вы хотите, чтобы в определенном поле было только 2, 3 или 6, то нужно делать эту проверку на сервере.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Собственная валидация на модели - мой выбор
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы