Страницы

Поиск по вопросам

среда, 27 ноября 2019 г.

Нужно ли валидировать данные на стороне сервера, если поля ввода итак уже выполняют эту функцию?

#php #html #laravel


У меня всего два поля: имя пользователя и email. Правила валидации очень простые:
имя 1-255 символов и email в соответствии с регулярным выражением; оба поля обязательные.
Всё это можно достичь на чистом HTML: два поля, второе имеет тип email, и оба с атрибутом
required. Даже при отключённом JavaScript сам HTML не даст отправить пустые или невалидные
данные.

И тем не менее, нужно ли валидировать данные на стороне сервера (я пишу на Laravel).
Мне не так трудно прописать все эти правила, но как это всё тестировать, если пустые
или невалидные данные мне просто HTML не даст отправить?
    


Ответы

Ответ 1



Главное правило программирования бэкенда - никогда не доверять клиенту! Забудьте что там на клиенте есть какая-то валидация. Она сделана не для вас, она сделана для пользователя. Злоумышленник всегда может нажать F12 и исправить вашу форму как ему будет угодно, удалив всю валидацию к чертям: А продвинутые хакеры знают про wget и curl, позволяющие отправить любой запрос вовсе не заходя на сайт в браузере. Наконец, можно даже утянуть вашу форму на отдельный сайт в инете, позволив тем самым любому неспециалисту вводить любые данные.

Ответ 2



Конечно нужно, так как никто не запрещает через консоль браузера изменить весь html код на вашей странице и в том числе убрать required у любых полей формы Или еще хуже, если у Вас например присутствует ajax на странице и пользователь видит адреса, по которым отправляются запросы, он может простой функцией в консоли начать спамить запросами на сервер

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

Отправить комментарий