Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Скрипт-обработчик ajax-запроса
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




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

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

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

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

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

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

Это сообщение отредактировал Raymond - 8.05.2017 - 20:04
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2383
Пользователь №: 26852
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 130




Да
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26447
Пользователь №: 21350
На форуме: 7 лет, 4 месяца, 13 дней
Карма: 739




Цитата
Если у пользователя отключен JS

не боись, это уже не пользователь. это неандерталец

user posted image


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (Игорь_Vasinsky @ 8.05.2017 - 20:43)
Цитата
Если у пользователя отключен JS

не боись, это уже не пользователь. это неандерталец

Просто, напримет, тут https://badoo.com/signup/?display_errors=1
если отключить JS, то форма ВРОДЕ БЫ ЕСТЬ, и даже отправляется, но работает через жо.
Как-то это, не знаю кхм, неофициально выглядит, что-ли)

Это сообщение отредактировал Raymond - 8.05.2017 - 21:18
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (walerus @ 8.05.2017 - 20:42)
Да

Типа, я создал поддельную форму, чтобы слать post-данные на скрипт обработчик ajax-запроса:

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

- Хоппа!!! 404.php

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

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

Это сообщение отредактировал Raymond - 8.05.2017 - 21:37
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




Цитата (Raymond @ 8.05.2017 - 19:25)

Типа, я создал поддельную форму, чтобы слать post-данные на скрипт обработчик ajax-запроса:

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

- Хоппа!!! 404.php

Детский сад вторая четверть.
Ты никогда не получишь 100% гарантии, что это именно аякс запрос пришел.
И заморачиваться на этом (аякс / не аякс) не нужно. Лишние телодвижения.
Аякс - это не метод защиты, а асинхронный фоновый метод передачи данных.
Вот и исользуй его для асинхронной фоновой передачи данных.
А защищать регистрацию от ботов нужно по-другому.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (AllesKlar @ 9.05.2017 - 01:23)
Детский сад вторая четверть.

А что тогда делать в таком случае? Подскажи, у меня мало опыта.
Просто, я имел ввиду зачем париться с заведомо левыми данными, если можно кинуть на страницу с ошибкой?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




Цитата (Raymond @ 9.05.2017 - 08:47)
Просто, я имел ввиду зачем париться с заведомо левыми данными,

Как ты определяешь, что данные "левые"?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (AllesKlar @ 9.05.2017 - 14:48)
Цитата (Raymond @ 9.05.2017 - 08:47)
Просто, я имел ввиду зачем париться с заведомо левыми данными,

Как ты определяешь, что данные "левые"?

Потому, что если они неправильные (не проходят серверную проверку), значит не были проверены предварительно яваскриптом. если не были проверены предварительно - значит 100% левые же.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8982
Пользователь №: 26630
На форуме: 6 лет, 4 месяца, 25 дней
Карма: 611




Raymond
ну если данные не валидные выводишь сообщение об ошибках и всего то.
Вообще серверная и клиентская валидация имеет разное назначение.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3706
Пользователь №: 38635
На форуме: 3 года, 7 месяцев
Карма: 198




Цитата (Raymond @ 9.05.2017 - 19:26)
Потому, что если они неправильные (не проходят серверную проверку), значит не были проверены предварительно яваскриптом. если не были проверены предварительно - значит 100% левые же.

Я не спрашиваю "почему", я спрашиваю "как"?
Какие критерии?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2383
Пользователь №: 26852
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 130




Raymond
Ты же сам написал:
Цитата
- Сначала проверяются все поля на правильность заполнения, капча и тд

Если капча самописная, т.е. не гугл капча например, то это один вопрос, если гугл капча, то уже 50% проблема от ботов (левых пост форм и т.д.) решена. Что мешает использовать параметр в сессии ?, левая форма уже не прокатит, если конечно не будет залита на сервер.
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (AllesKlar @ 9.05.2017 - 22:52)

Я не спрашиваю "почему", я спрашиваю "как"?
Какие критерии?

Не соответствуют регуляркам логин и пароль, или пришел логин, который уже есть в БД и так далее.
Обычный пользователь может отправить только верные данные на сервер. Неправильные - значит пришли не пойми откуда
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Raymond  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 38
Пользователь №: 43562
На форуме: 8 месяцев, 21 день
Карма:




Цитата (walerus @ 10.05.2017 - 01:40)

Если капча самописная, т.е. не гугл капча например, то это один вопрос, если гугл капча, то уже 50% проблема от ботов (левых пост форм и т.д.) решена. Что мешает использовать параметр в сессии ?, левая форма уже не прокатит, если конечно не будет залита на сервер.


Тут вопрос больше не защиты, а того, зачем выполнять какие-то лишние действия
при получении практически 100% некорректного обращения к скрипту)

Это ведь почти то же самое, что отсутствие (не пустота) какого-то ожидаемого ключа $_POST-массива .

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


PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
walerus  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чтобы все !
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2383
Пользователь №: 26852
На форуме: 6 лет, 4 месяца, 11 дней
Карма: 130




Raymond Как написал выше AllesKlar, ты никогда не узнаешь от кого пришел запрос на AJAX обработчик, т.е. от твоего скрипта или же от "локалки"... Я могу перехватить данные которые отправляются на AJAX обработчик и сделать такой же запрос на локалке... обработчик в любом случае должен вернуть FALSE или TRUE или что то иное тобою придуманное, может ты захочешь кодировать ответ в sha256 или еще как, это твое дело, НО!, ответ от обработчика должен быть однозначно, не зависимо от того все поля пришли или нет, на то он и обработчик...

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

Цитата
что обычно нужно делать , если
отсутствует ожидаемый ключа $_POST-массива . например, ждешь в обработчике $_POST['login'], но isset($_POST['login']) == false?

1) выдавать ошибку отправки формы ( не все поля заполнены и т.п. )
2) редиректить на пункт правил о читинге biggrin.gif
3) заносить в базу подобных юзеров (IP, броузер, размер экрана и т.д.) что бы потом блокировать на определенное время( было в соседней ветке про блокировку при ошибочных вводах )
...
n) Ничего не делать

Все что угодно в общем cool.gif
PMICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса