Мой вопрос прост, я пишу простую регистрационную форму для моего сайта, используя HTML, PHP и jQuery.
Обязательно ли писать валидацию в PHP также, когда я могу использовать требуемый тег HTML для каждого входа и использовать PHP для проверки наличия имени пользователя и пароля?
Я считаю, что хорошая практика также имеет валидацию в фоновом режиме, но, похоже, что «требуемая» функция в HTML все это заботится? Может ли это быть неправильно использовано, каковы общие недостатки, основанные исключительно на HTML для простой проверки формы?
Обязательно ли писать валидацию формы в PHP также
Вы никогда не сможете зависеть от какой-либо формы проверки на стороне клиента. Его всегда можно обойти.
Люди могут использовать браузеры, которые не поддерживают атрибуты проверки HTML 5, или могут использовать инспектор DOM для их удаления.
Решения JavaScript могут быть тривиально обойдены отключением JavaScript.
Формы могут быть скопированы / вставлены, отредактированы и затем отправлены со страницы, принадлежащей пользователю.
HTTP-запросы могут быть созданы вручную, не приближаясь к форме.
и т.д.
Проверка на стороне клиента может быть предоставлена только для удобства пользователя. Защита ваших систем может обрабатываться только на стороне сервера.
Вы никогда не должны полагаться на проверку интерфейса. Не Javascript или HTML. Пользователи могут открыть вашу регистрационную форму, использовать firebug или какой-либо другой инструмент, проверить текстовое поле и УДАЛИТЬ required
атрибут. Также вы можете отправить на свою встроенную переменную POSTED, даже не открыв внешний интерфейс
Проверка на сервере является обязательной
Тем не менее, вы можете справиться с хорошими действиями, проверяя как на клиенте, так и на сервере, чтобы пользователь получал мгновенную обратную связь, но да, нужно делать валидацию в PHP.
Это может помочь подумать о том, что проверка на стороне клиента является проблемой удобства использования, а проверка на стороне сервера является проблемой безопасности.
В тех случаях, когда юзабилити можно охарактеризовать как «хорошо иметь», безопасность определенно «должна иметь».