Проверка формы с помощью PHP и безопасности Javascript - PullRequest
0 голосов
/ 09 августа 2010

Мне было интересно, действительно ли нужно проверять как в JS, так и в PHP?У меня есть кнопка отправки с JS document.myform.submit(), отправляющая с PHP POST на ту же страницу.Если пользователь отключает JS, он не может отправить форму в любом случае.Поэтому я хотел спросить о безопасности, может ли кто-то отправить переменные другим способом, минуя JavaScript?Как они это сделают?И если они могут, то ответ, если мне нужно будет проверить и в PHP, будет ДА, верно?

Ответы [ 5 ]

3 голосов
/ 09 августа 2010

Ответ прост.
Серверная часть обязательна и должна выполняться безоговорочно.

Проверка на стороне клиента необязательна, просто для удобства пользователя.

Таким образом, проверка с обеих сторон не обязательна, но предпочтительна для удобства использования

Если пользователь отключает JS, он все равно не сможет отправить форму.

лол. Пользователь может сохранить вашу форму на своем локальном диске и редактировать ее так, как он хочет.

1 голос
/ 09 августа 2010

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

как пример того, как это просто:

import urllib2

variables = {'variable1': value1, 'variable2': value2}
urllib2.urlopen('http://yoursite.com/index.php/yourform', variables)
# your form has now been spoofed.

Добавление заголовков и управления cookie-файлами для подмены любого пользовательского агента также просто

0 голосов
/ 10 августа 2010

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

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

http://www.blackboxtechnology.co.uk/free-stuff/javascript-form-checker.php

Наслаждайтесь!

0 голосов
/ 09 августа 2010

Точно так же, как все ответили - никогда не полагайтесь только на проверку на стороне клиента.Это так легко злоупотребить, что даже не нужно сохранять свою веб-страницу на диск, он может использовать libcurl или любую другую HTTP-библиотеку или просто играть с Firebug ect.

Проверка на стороне клиента очень удобна для пользователя.Вы можете добавить проверку Ajax к своим формам, и все же это просто удобство и должно опираться на код на стороне сервера.

0 голосов
/ 09 августа 2010

ВСЕГДА проверяйте на стороне сервера. Проверка JavaScript полезна, но ее можно легко обойти. злоумышленник может подделать HTTP-запрос POST со злонамеренными данными по URL-адресу вашей формы, который затем войдет в вашу систему без проверки.

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