25.02.2016, 19:22
|
Профессор
|
|
Регистрация: 10.03.2013
Сообщений: 169
|
|
Механизм передачи формы
Доброго времени суток, уважаемые форумчане
Столкнулся с проблемой пока для меня не понятной
Есть интернет магазин, на форме заказа товара пользователь заполняет данные, нажимает отправить, идёт проверка формы и форма отдаётся php скрипту.
php скрипт обрабатывает данные, формирует заказ, сохраняет его в БД и отправляет письмо-уведомление на почту.
У меня форма прекрасно обрабатывается и никаких проблем нет.
Однако, у другого пользователя провайдер намутил какую то чушь и его ip меняется в рандомном порядке с периодичностью несколько раз в минуту.
Сам я сталкиваюсь с таким первый раз, но это действительно так, я проверял(составлял логи её движения по сайту)
И соответственно после отправки формы (он отправил 1 раз) в базу добавились 4 заказа, а так же на почту пришло 4 письма. Разброс времени заказов был 3 минуты, а так же все 4 заказа были отправлены с разных ip адресов. Все остальные данные были идентичны. С письмами та же беда.
Тогда я решил схитрить и заблокировал кнопку формы после её нажатия, у меня нажимается и отправляется, у пользователя с ip-шниками форма не отправляется
Подскажите что делать. может кто сталкивался???
|
|
25.02.2016, 21:16
|
Аспирант
|
|
Регистрация: 15.12.2015
Сообщений: 83
|
|
Дурь какая-то. Никогда не сталкивался. Слать пользователя разбираться с провайдером.
Если хочется решить проблему самому - серверу пофигу на ip, есть кука сессии, юзер идентифицирован однозначно. Пишем миддлеварь, который будет по телу всех пост-запросов вычислять md5-хеш и сохранять его, когда в течение заданного интервала приходит один и тот же post-запрос от одного юзера - блокировать его и не пускать дальше, клиенту слать уведомление. Но это такой гемор...
|
|
26.02.2016, 06:27
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Гробовщик
|
пользователь заполняет данные, нажимает отправить, идёт проверка формы и форма отдаётся php скрипту.
php скрипт обрабатывает данные, формирует заказ, сохраняет его в БД
|
РНР скрипт должен - принять форму, проверить данные, и только после этого либо в базу, либо возврат формы. То что на клиенте что-то проверяется серверу должно быть по барабану.
Браузеры могут запоминать содержание формы, а возвратившись на страницу с ней, можно и повторно отправить, а еще и по F5 в вашу базу можно написать сколь угодно мусора. Чтобы не получать таковой, нужно перенаправление страницы, можно и на саму себя.
Хост не изменяет IP пользователя, это ваша фантазия.
|
|
26.02.2016, 07:44
|
Профессор
|
|
Регистрация: 10.03.2013
Сообщений: 169
|
|
laimas,
Я понимаю о чём я говорю.
Да скрипт проверяет данные, то что я забыл это написать-сути не меняет. Даже если есть пере направление, кому надо, тот мусора накидает. У меня стоит другая проверка и поверьте по F5 ничего не накидается...
Я не говорил, что хост меняет ip. Провайдер меняет ip клиенту и да он меняется, я знаю о чём говорю
Спасибо за вашу консультацию, но мне бы по сути...
Последний раз редактировалось Гробовщик, 26.02.2016 в 08:00.
|
|
26.02.2016, 07:57
|
Профессор
|
|
Регистрация: 10.03.2013
Сообщений: 169
|
|
Max Power,
Сообщение от Max Power
|
Слать пользователя разбираться с провайдером.
|
не варик. у пользователя логика проста, есть у меня-может быть и у других... Да и мне из принципа интересно, ведь нет нерешаемых проблем.
Сообщение от Max Power
|
Но это такой гемор...
|
Я думал об это же... Я думал выдавать пользователю идентификатор и записывать его в куку, и не давать пользователю заказывать чаще, чем раз в 5 минут (например). Я просто надеялся, что есть более интересный вариант...
А может есть смысл докопаться до хостера с этим вопросом???
|
|
26.02.2016, 09:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Гробовщик
|
Провайдер меняет ip клиенту и да он меняется, я знаю о чём говорю
|
А большая часть интернет пользователей как раз сидит на динамическом IP, или для вас это открытие?
Перенаправление это как раз одна из защиты от F5, дабы сбросить POST, никакие проверки этого сделать не могут.
Прежде чем заказать товар, в магазинах предлагают регистрацию. А кому надо напакостить мусором, тому и куки не помеха.
|
|
26.02.2016, 13:48
|
Профессор
|
|
Регистрация: 10.03.2013
Сообщений: 169
|
|
laimas,
Сообщение от laimas
|
А большая часть интернет пользователей как раз сидит на динамическом IP, или для вас это открытие?
|
Друг, что же ты такой упрямый... Обычно динамический ip меняется при пере подключении, тут же ip-шник меняется сам по несколько раз в минуту БЕЗ ПЕРЕ ПОДКЛЮЧЕНИЙ
Сообщение от laimas
|
Перенаправление это как раз одна из защиты от F5, дабы сбросить POST, никакие проверки этого сделать не могут.
|
Ты не знаешь а говоришь... У меня товар в куках висит (id). После отправки в базу куки отчищаются... Без куков запрос повторно не отправляется...
В случае о чём говоришь ты я просто могу вернуться на страницу назад (в хроме так) и запрос отправиться повторно, если проверка херовая... $_POST вроде отчистится, но я смогу на такую страницу просто перейти со своего сервера через форму и задолбить тебе базу через скрипт (объяснять не буду, если сам не понял, то и не поймёшь). Это не панацея...
Сообщение от laimas
|
Прежде чем заказать товар, в магазинах предлагают регистрацию. А кому надо напакостить мусором, тому и куки не помеха.
|
Тут без регистрации, в глупых магазинах регистрацию предлагают, да и по ТЗ регистрации быть не должно...
Друг, ты бред несёшь, отвяжись от меня со своими аргументами, они глуповатые...
|
|
26.02.2016, 14:14
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Гробовщик
|
тут же ip-шник меняется сам по несколько раз в минуту БЕЗ ПЕРЕ ПОДКЛЮЧЕНИЙ
|
А вы откуда это знаете, по логам? Они вам об этом не скажут, в данном случае нужен анализ открытия/закрытия соединения. И трудно представить пользователя желающего вам насолить, который бы по несколько раз в минуту что-от слал, закрывая и открывая опять интернет соединение. Такое поведение характерно не человеку, а боту, и одними куками защиту не сделать. Выполнение же JS-сценария, как средство защиты от бота может помочь, если бот серверный, если с клиента работает, то не поможет.
Сообщение от Гробовщик
|
Ты не знаешь а говоришь... У меня товар в куках висит (id). После отправки в базу куки отчищаются...
|
Да хоть на прищепках висит и под паспортом, ведь отправляется, а не сервером читается.
Сообщение от Гробовщик
|
В случае о чём говоришь ты я просто могу вернуться на страницу назад (в хроме так) и запрос отправиться повторно, если проверка херовая... $_POST вроде отчистится, но я смогу на такую страницу просто перейти со своего сервера через форму и задолбить тебе базу через скрипт (объяснять не буду, если сам не понял, то и не поймёшь).
|
Это бред полный, разберитесь с тем что такое сбросить POST, а после чего гуляйте по истории в хроме, чтобы это утверждать.
|
|
26.02.2016, 14:25
|
Профессор
|
|
Регистрация: 10.03.2013
Сообщений: 169
|
|
laimas,
Я не буду тебе объяснять даже. Ты лучше тогда все формы через ajax отправляй... И никакого пере направления не надо... А с ip -шниками да, ты прав человек отправляет данные приходит то, что он отправлял... Это несомненно бот, вот именно так и есть. и то что я именно давал доступ по паролю в админку и мониторил как у логина меняется ip адрес в зависимости от страницы тоже работа бота... Всё ты победил...
Купи себе пироженное...
|
|
26.02.2016, 14:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от Гробовщик
|
Ты лучше тогда все формы через ajax отправляй... И никакого пере направления не надо...
|
Вы не поясняете, чем отправка, но утверждаете, что де Хрому похрен перенаправление, стоит только сделать переход по истории, и... Вот хрен там, никаких и, не получится. Так что прежде чем спорить, не мешало бы выяснить.
Насчет глупых магазинов с регистрацией.... Ну-ну... Спецы, мать вашу.
|
|
|
|