Зачем нужна проверка форм в php? - PullRequest
1 голос
/ 02 ноября 2009

Я закончил проверку с использованием JavaScript для формы в PHP.

Когда есть необходимость в проверке PHP?

Проверка javascript сама по себе гарантирует, что все поля заполнены. Есть ли возможность проверить действительный формат входных данных с помощью JavaScript?

Ответы [ 7 ]

11 голосов
/ 02 ноября 2009

Да

Проверка на стороне клиента (Javascript) только для того, чтобы помочь невинным пользователям обнаруживать любые ошибки в своих формах без необходимости поездки на сервер и перезагрузки страницы.

Проверка на стороне сервера (PHP) необходима, чтобы не дать злонамеренным пользователям отправлять некорректные запросы на ваш сервер и получать доступ к вашим данным.

Обратите внимание, что проверка на стороне клиента работает только на формах, которые вы делаете. Вредоносный пользователь может легко создать свою собственную форму и отправить ее на ваш сервер - таким образом, полностью обходя проверку на стороне клиента.

Вывод: вам нужны обе формы проверки данных.

5 голосов
/ 02 ноября 2009

Проверка с помощью javascript отлично подходит для использования, но без проверки на стороне сервера вы оставляете себя открытым для злонамеренного ввода и неверных данных.

3 голосов
/ 02 ноября 2009

Javascript обеспечивает проверку на стороне клиента, но:

  • может быть отключено
  • Форма может быть отправлена ​​на ваш сервер "плохим парнем" с пользовательской страницы

так что оба требуются ИМХО

1 голос
/ 02 ноября 2009

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

0 голосов
/ 02 марта 2012

Но какова цель использования обеих проверок одновременно? Потому что это дополнительная нагрузка на сервер для проверки ввода формы в php, если проверка javascript прошла успешно. Разве мы не можем использовать флаг и устанавливать или отменять его значение в зависимости от того, успешно ли прошла проверка JavaScript или нет? И если значение флага установлено, мы пропустим проверку php. Разве это не возможно? Если это невозможно, можете ли вы объяснить действительным примером из реальной жизни? Или пользователь может изменить значение флага, даже если мы передадим его в заголовок? Жду некоторых логических ответов. Спасибо.

0 голосов
/ 02 ноября 2009
telnet yoursite.com 80
GET /yourapp.php?name=');drop%20table%20users;-- HTTP/1.1
Host: yoursite.com

Плохие вещи случаются, когда вы не выполняете очистку на стороне сервера.

Немного менее важно, чем предотвращение того, чтобы ваш сайт стал владельцем кого-либо с небольшим знанием, не у всех будет включен javascript, поэтому вы также хотите предоставить им полезные сообщения об ошибках (не говоря уже о том, чтобы избегать работы с неверные данные, создание пользователей с пустыми адресами электронной почты или именами, в качестве примера, не являющегося вредоносным).

0 голосов
/ 02 ноября 2009

Да, если JavaScript отключен в клиентском браузере, тогда необходима проверка на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...