Скрипт-обработчик ajax-запроса

Forever

Новичок
Планирую форму регистрации на аяксе. Примерно с такой логикой:

- Если у пользователя отключен JS, то вместо формы появляется сообщение вроде "для доступа к этой странице требуется включить JavaScript "

- Сначала проверяются все поля на правильность заполнения, капча и тд. И только если все нормально, данные отсылаются на сервер.

Так вот, если на сервер пришли неправильные данные, значит они левые и пришли в обход формы? Так ведь?

И если так, то есть ли смысл при обнаружении любых ошибок в пришедших данных прекращать работу обработчика аякс-запроса и выдавать какую-нибудь страницу ошибки?

Типа, если какой-то ганд... плохой человек шлет пост-запросы на обработчик, то попадает на страницу ошибки.
 

AnrDaemon

Продвинутый новичок
Начните с того, что формально определите "правильность" данных.
А по поводу реакции - решайте сами. Только учтите, что если это AJAX запрос, то и ответ должен быть соответствующий, даже если это сообщение об ошибке.
 

Forever

Новичок
А по поводу реакции - решайте сами. Только учтите, что если это AJAX запрос, то и ответ должен быть соответствующий, даже если это сообщение об ошибке.
Типа, я создал поддельную форму, чтобы слать post-данные на скрипт обработчик ajax-запроса:

- отправил в поле 'login' логин уже существующего пользователя.

- Хоппа!!! 404.php или вроде того

А нормальный пользователь , который использует форму, либо ничего не может отправить, либо отправляет только правильные данные.

И он либо никуда не попадет со страницы с формой при сабмите (пока все как следует не заполнит), либо попадет на страницу с уведомлением о том, что зарегистрирован.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Опять?… На сервере нет никакой формы, есть ЗАПРОС.
 

antson

Новичок
Партнер клуба
@Forever, ну вот представим я плохой человек.
пишу скрипт из 5 строчек и начинаю курлом тебе слать пост запрос. Мне пофигу, что ты там вернешь.
ответ твоего сервера могу просто игнорировать.

Поэтому ты должен предусмотреть защиту от csrf
тогда мне придется сперва дернуть страницу с твоей формой авторизацией. Запомнить выданный тукен
и только потом слать данные на скрипт регистрации.

Если еще будет капча, то ее надо распознать. Например переложив эту работу на посетителей порноресурса (или купить такую услугу у стороннего поставщика)

Если ты ограничиваешь еще по кол-ву регистраций в промежуток времени с одного айпи , то прикупить спул проксей.

В общем задача на соотношение стоимости защиты / ее преодоления. Полученного профита.
твой сайт это "Неуловимый ДЖО" . не взламывается пока это кому-либо нафиг не нужно.
Точнее пока обычные эксплоиты, которыми массово сканят сайты не сработают.
 

Forever

Новичок
@Forever, ну вот представим я плохой человек.
.
Спасибо за объяснение, общая картина теперь стала гораздо яснее.
Но я немного неверно сформулировал вопрос. он больше не о защите.
А о том, нормально ли прекращать работу скрипта и отдавать страницу ошибки при получении "левых" данных . Ведь в моем случае, неверные данные означают, что не было предварительной JS-валидации, а значит они практически 100% пришли не пойми откуда.

Плюс, заодно, расскажите пожалуйста, как быть, когда в обработчик не приходят ожидаемые данные , например, обязательное поле $_POST['login'] или типа того.
Как Вы знаете, даже пустые текстовые input'ы дают истину при отправке на сервер. Допустим, если isset($_POST['login']) вернуло ложь, что делают обычно? Это ведь означает, что пост-запрос пришел откуда угодно, только не оттуда, откуда нужно.

Можно ведь возвращать страницу с кодом ошибки или что-то вроде.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
не было предварительной JS-валидации
JS работает на стороне клиента под контролем и управлением клиента.
Ты просто не имеешь права ему доверять.
Допустим, если isset($_POST['login']) вернуло ложь, что делают обычно
Обычно делают дела, предусмотренные бизнес-логикой.
Тебе не кажется, что ты задаёшь неправильные вопросы? При том, что тебе об этом уже дважды намекнули (и даже прямо сказали).
 

Forever

Новичок
JS работает на стороне клиента под контролем и управлением клиента.
Ты просто не имеешь права ему доверять .
Я проверяю все сначала на JS а потом уже в PHP. "Нормальный" пользователь ничего не сможет отправить на сервер, пока на это не даст добро Js. Если что-то пришло не так (а это я выясню на сервере), - значит JS-проверки не были пройдены. Вывод - пользователь "не нормальный", да и не совсем пользователь, наверное.. И мне кажется, это объяснение я уже раза три повторял в этой теме.

Обычно делают дела, предусмотренные бизнес-логикой.
Есть какие-то общие/желательные/рекомендуемые практики, и не говори, что нет. Не поверю.

Тебе не кажется, что ты задаёшь неправильные вопросы? При том, что тебе об этом уже дважды намекнули (и даже прямо сказали).
Я спрашиваю конкретные вещи, которые хочу узнать в определенные моменты времени. Отвечать на них или не отвечать - дело читающих.
 

antson

Новичок
Партнер клуба
@Forever, не делай на аяксе .
сделай сперва классику.
http://agr.ru/register/ - тут возможности валидации html5 можешь подглядеть . Кое что на js проверяется. Но основной контроль в php скрипте. И если что-то не правильно, то форма идет на повторный ввод с сохранением введенного и индикацией, что не нравится.
 

AnrDaemon

Продвинутый новичок
Я спрашиваю конкретные вещи, которые хочу узнать в определенные моменты времени.
Тебе с ходу сказали, что ты задаёшь невозможные вопросы.
Нельзя знать то, чего не существует в природе.
Мы не на религиозные темы тут общаемся, а на технические.
 
Сверху