Считается ли использование обязательного атрибута HTML на входе проверкой?

В настоящее время я работаю над регистрационной формой, и я решил добавить некоторые обязательные поля, такие как адрес электронной почты, пароль и т. д.

Единственная проверка, которую я хочу сделать для обязательных полей, просто не является нулевой, поэтому я использовал обязательный атрибут внутри входного элемента.

Это безопасно? Или мне нужно использовать дополнительную проверку PHP?

Вам ВСЕГДА нужна проверка на стороне сервера

mplungjan 18.05.2018 11:14

Спасибо за быстрый ответ. Я только что понял, что можно просто отредактировать исходный код .. :)

S. ter Keurs 18.05.2018 11:17

@mplungjan, не могли бы вы добавить свой комментарий в качестве ответа, чтобы я мог выбрать его как один?

S. ter Keurs 18.05.2018 11:17

@ S.terKeurs Все в порядке. На самом деле нет необходимости принимать мой комментарий как ответ. Да, отредактируйте код или не используйте его вообще, просто отправьте POST-запросы с помощью CURL и т. д.

mplungjan 18.05.2018 11:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
438
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Это может быть безопасно, поскольку последний браузер полностью поддерживает этот атрибут. Но я не знаю, что произойдет, если кто-то будет использовать старую версию браузера, поэтому, если вы боитесь этого, проверка PHP не будет слишком сложной.

Если вам нужен хороший образец регистрационной формы, просто спросите меня наедине, я пришлю его вам!

Или если браузер не используется

mplungjan 18.05.2018 11:21

никогда будет безопасным, если вы просто полагаетесь на проверку на стороне клиента; вы можете использовать вкладку сети в инструментах разработчика в любом современном браузере для управления данными POST на лету или просто написать новую HTML-страницу с формой, которая отправляется на тот же URL-адрес - и это просто самые простые способы обойти любого клиента - боковая проверка ...

CD001 18.05.2018 11:23

Хм, понятно ... Извините за плохой ответ: ') (Это мой первый здесь, так что в следующий раз будет лучше) А также спасибо, что поправили меня!

Raynorhs 18.05.2018 11:33
Ответ принят как подходящий

Проверка на стороне сервера лучше (если мы даже не можем сказать, что она нужна), и ее действительно легко сделать.

Если нужно, вот пример:

if (!empty($_POST['pseudo']) && !empty($_POST['password'])) {
    //Prevent SQL injection (if you use DB here)
    $pseudo = addslashes($_POST['pseudo']);
    $password = addslashes($_POST['password']);
}

addslashes() - не лучший способ, но работает на любом движке БД, например, лучше использовать mysql_real_escape_string(), если у вас есть движок MySQL.

И связанная форма:

<form method = "post" action = "#">
    <label for = "pseudo">Identifiant</label>
    <input type = "text" name = "pseudo" required>
    <label for = "password">Mot de passe</label>
    <input type = "password" name = "password">
    <input type = "submit" value = "Connexion" required>
</form>

Использование веб-страницы для отправки вам формы - не единственный способ отправки формы.

Кто-то может отправлять вам формы с других устройств или может обходить ваши обязательные поля и отправлять вам пустые данные или нежелательные данные, такие как PHP-инъекции.

Вы должны выполнить проверку на стороне сервера.

Другие вопросы по теме