Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.02.2016, 19:22
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

Механизм передачи формы
Доброго времени суток, уважаемые форумчане
Столкнулся с проблемой пока для меня не понятной
Есть интернет магазин, на форме заказа товара пользователь заполняет данные, нажимает отправить, идёт проверка формы и форма отдаётся php скрипту.
php скрипт обрабатывает данные, формирует заказ, сохраняет его в БД и отправляет письмо-уведомление на почту.
У меня форма прекрасно обрабатывается и никаких проблем нет.
Однако, у другого пользователя провайдер намутил какую то чушь и его ip меняется в рандомном порядке с периодичностью несколько раз в минуту.
Сам я сталкиваюсь с таким первый раз, но это действительно так, я проверял(составлял логи её движения по сайту)
И соответственно после отправки формы (он отправил 1 раз) в базу добавились 4 заказа, а так же на почту пришло 4 письма. Разброс времени заказов был 3 минуты, а так же все 4 заказа были отправлены с разных ip адресов. Все остальные данные были идентичны. С письмами та же беда.
Тогда я решил схитрить и заблокировал кнопку формы после её нажатия, у меня нажимается и отправляется, у пользователя с ip-шниками форма не отправляется
Подскажите что делать. может кто сталкивался???
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2016, 21:16
Аспирант
Отправить личное сообщение для Max Power Посмотреть профиль Найти все сообщения от Max Power
 
Регистрация: 15.12.2015
Сообщений: 83

Дурь какая-то. Никогда не сталкивался. Слать пользователя разбираться с провайдером.

Если хочется решить проблему самому - серверу пофигу на ip, есть кука сессии, юзер идентифицирован однозначно. Пишем миддлеварь, который будет по телу всех пост-запросов вычислять md5-хеш и сохранять его, когда в течение заданного интервала приходит один и тот же post-запрос от одного юзера - блокировать его и не пускать дальше, клиенту слать уведомление. Но это такой гемор...
Ответить с цитированием
  #3 (permalink)  
Старый 26.02.2016, 06:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Гробовщик
пользователь заполняет данные, нажимает отправить, идёт проверка формы и форма отдаётся php скрипту.
php скрипт обрабатывает данные, формирует заказ, сохраняет его в БД

РНР скрипт должен - принять форму, проверить данные, и только после этого либо в базу, либо возврат формы. То что на клиенте что-то проверяется серверу должно быть по барабану.

Браузеры могут запоминать содержание формы, а возвратившись на страницу с ней, можно и повторно отправить, а еще и по F5 в вашу базу можно написать сколь угодно мусора. Чтобы не получать таковой, нужно перенаправление страницы, можно и на саму себя.

Хост не изменяет IP пользователя, это ваша фантазия.
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2016, 07:44
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

laimas,
Я понимаю о чём я говорю.
Да скрипт проверяет данные, то что я забыл это написать-сути не меняет. Даже если есть пере направление, кому надо, тот мусора накидает. У меня стоит другая проверка и поверьте по F5 ничего не накидается...
Я не говорил, что хост меняет ip. Провайдер меняет ip клиенту и да он меняется, я знаю о чём говорю
Спасибо за вашу консультацию, но мне бы по сути...

Последний раз редактировалось Гробовщик, 26.02.2016 в 08:00.
Ответить с цитированием
  #5 (permalink)  
Старый 26.02.2016, 07:57
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

Max Power,
Сообщение от Max Power
Слать пользователя разбираться с провайдером.
не варик. у пользователя логика проста, есть у меня-может быть и у других... Да и мне из принципа интересно, ведь нет нерешаемых проблем.
Сообщение от Max Power
Но это такой гемор...
Я думал об это же... Я думал выдавать пользователю идентификатор и записывать его в куку, и не давать пользователю заказывать чаще, чем раз в 5 минут (например). Я просто надеялся, что есть более интересный вариант...
А может есть смысл докопаться до хостера с этим вопросом???
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2016, 09:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Гробовщик
Провайдер меняет ip клиенту и да он меняется, я знаю о чём говорю

А большая часть интернет пользователей как раз сидит на динамическом IP, или для вас это открытие?

Перенаправление это как раз одна из защиты от F5, дабы сбросить POST, никакие проверки этого сделать не могут.

Прежде чем заказать товар, в магазинах предлагают регистрацию. А кому надо напакостить мусором, тому и куки не помеха.
Ответить с цитированием
  #7 (permalink)  
Старый 26.02.2016, 13:48
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

laimas,
Сообщение от laimas
А большая часть интернет пользователей как раз сидит на динамическом IP, или для вас это открытие?
Друг, что же ты такой упрямый... Обычно динамический ip меняется при пере подключении, тут же ip-шник меняется сам по несколько раз в минуту БЕЗ ПЕРЕ ПОДКЛЮЧЕНИЙ
Сообщение от laimas
Перенаправление это как раз одна из защиты от F5, дабы сбросить POST, никакие проверки этого сделать не могут.
Ты не знаешь а говоришь... У меня товар в куках висит (id). После отправки в базу куки отчищаются... Без куков запрос повторно не отправляется...
В случае о чём говоришь ты я просто могу вернуться на страницу назад (в хроме так) и запрос отправиться повторно, если проверка херовая... $_POST вроде отчистится, но я смогу на такую страницу просто перейти со своего сервера через форму и задолбить тебе базу через скрипт (объяснять не буду, если сам не понял, то и не поймёшь). Это не панацея...
Сообщение от laimas
Прежде чем заказать товар, в магазинах предлагают регистрацию. А кому надо напакостить мусором, тому и куки не помеха.
Тут без регистрации, в глупых магазинах регистрацию предлагают, да и по ТЗ регистрации быть не должно...
Друг, ты бред несёшь, отвяжись от меня со своими аргументами, они глуповатые...
Ответить с цитированием
  #8 (permalink)  
Старый 26.02.2016, 14:14
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Гробовщик
тут же ip-шник меняется сам по несколько раз в минуту БЕЗ ПЕРЕ ПОДКЛЮЧЕНИЙ
А вы откуда это знаете, по логам? Они вам об этом не скажут, в данном случае нужен анализ открытия/закрытия соединения. И трудно представить пользователя желающего вам насолить, который бы по несколько раз в минуту что-от слал, закрывая и открывая опять интернет соединение. Такое поведение характерно не человеку, а боту, и одними куками защиту не сделать. Выполнение же JS-сценария, как средство защиты от бота может помочь, если бот серверный, если с клиента работает, то не поможет.

Сообщение от Гробовщик
Ты не знаешь а говоришь... У меня товар в куках висит (id). После отправки в базу куки отчищаются...

Да хоть на прищепках висит и под паспортом, ведь отправляется, а не сервером читается.


Сообщение от Гробовщик
В случае о чём говоришь ты я просто могу вернуться на страницу назад (в хроме так) и запрос отправиться повторно, если проверка херовая... $_POST вроде отчистится, но я смогу на такую страницу просто перейти со своего сервера через форму и задолбить тебе базу через скрипт (объяснять не буду, если сам не понял, то и не поймёшь).

Это бред полный, разберитесь с тем что такое сбросить POST, а после чего гуляйте по истории в хроме, чтобы это утверждать.
Ответить с цитированием
  #9 (permalink)  
Старый 26.02.2016, 14:25
Профессор
Отправить личное сообщение для Гробовщик Посмотреть профиль Найти все сообщения от Гробовщик
 
Регистрация: 10.03.2013
Сообщений: 169

laimas,
Я не буду тебе объяснять даже. Ты лучше тогда все формы через ajax отправляй... И никакого пере направления не надо... А с ip -шниками да, ты прав человек отправляет данные приходит то, что он отправлял... Это несомненно бот, вот именно так и есть. и то что я именно давал доступ по паролю в админку и мониторил как у логина меняется ip адрес в зависимости от страницы тоже работа бота... Всё ты победил...
Купи себе пироженное...
Ответить с цитированием
  #10 (permalink)  
Старый 26.02.2016, 14:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Гробовщик
Ты лучше тогда все формы через ajax отправляй... И никакого пере направления не надо...
Вы не поясняете, чем отправка, но утверждаете, что де Хрому похрен перенаправление, стоит только сделать переход по истории, и... Вот хрен там, никаких и, не получится. Так что прежде чем спорить, не мешало бы выяснить.

Насчет глупых магазинов с регистрацией.... Ну-ну... Спецы, мать вашу.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятный функционал валидации формы noir Элементы интерфейса 1 04.12.2015 21:37
ajax передача отдельной переменной и формы dmitriy94 AJAX и COMET 16 16.01.2015 23:33
Четыре одинаковые формы на странице с разной версткой varanika jQuery 2 19.10.2014 13:14
Не могу разобрать механизм отправки формы kreon Angular.js 3 19.12.2013 13:04
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00