Нужно ли делать валидацию формы на фронте и бэке одновременно?
Приветствую.
Просто интересно. К примеру, есть сайт на PHP с простой формой (фио, адрес, телефон, почта). Можно сделать валидацию на JS и сразу выдавать результат корректности заполнения полей. Можно без JS сделать все на PHP. Можно миксануть и сделать валидацию и на фронте на JS и на бэке на PHP. Но какой из этих путей «джедайский»? Каковы лучшие практики по этой задаче?
Мне кажется, что вполне достаточно будет и на JS сделать валидацию, а на PHP ее стоит делать на весьма странные случаи.
Владимир, тяжело будет когда его DDOSить начнут.
Хотя, конечно, и самостоятельный выстрел в ногу бывает. Видел забавное, когда запрос из JS при ошибке сервера делает запрос ещё раз и так до бесконечности. Одна ошибка сервера и он долго не мог подняться от шквала перезапросов всех клиентов…
Владимир, а зачем делать запрос на сервер после каждого клика? Валидация на беке делается один раз, как правило, при отправке всей формы. А вот на фронте хоть на каждом клике валидируй.
На фронте валидация нужна только для человеческого UX, что, конечно, важно, но не критически важно.
Нет валидации на фронте, есть валидация на бэке, в форме 1 поле которое может принимать любые значения, форма отправляется по клику, каждый клик = запрос на сервер
Джедайский путь только один и он такой: и на фронте на JS и на бэке на PHP.
Любые данные, которые могут прилететь на бэкенд, надо по-умолчанию считать опасными и обязательно валидировать.
Валидацию на JS пользователь может отключить с помощью консоли. Если нет валидации на PHP, то пользователь может загрузить на сервак любой PHP-файл (скажем, вместо аватара) и потом запустить его на выполнение. (sql-иньекции и все такое) Так что от сюда и вывод по поводу должна ли быть валидация на PHP.