Механизм передачи формы
Доброго времени суток, уважаемые форумчане
Столкнулся с проблемой пока для меня не понятной Есть интернет магазин, на форме заказа товара пользователь заполняет данные, нажимает отправить, идёт проверка формы и форма отдаётся php скрипту. php скрипт обрабатывает данные, формирует заказ, сохраняет его в БД и отправляет письмо-уведомление на почту. У меня форма прекрасно обрабатывается и никаких проблем нет. Однако, у другого пользователя провайдер намутил какую то чушь и его ip меняется в рандомном порядке с периодичностью несколько раз в минуту. Сам я сталкиваюсь с таким первый раз, но это действительно так, я проверял(составлял логи её движения по сайту) И соответственно после отправки формы (он отправил 1 раз) в базу добавились 4 заказа, а так же на почту пришло 4 письма. Разброс времени заказов был 3 минуты, а так же все 4 заказа были отправлены с разных ip адресов. Все остальные данные были идентичны. С письмами та же беда. Тогда я решил схитрить и заблокировал кнопку формы после её нажатия, у меня нажимается и отправляется, у пользователя с ip-шниками форма не отправляется Подскажите что делать. может кто сталкивался??? |
Дурь какая-то. Никогда не сталкивался. Слать пользователя разбираться с провайдером.
Если хочется решить проблему самому - серверу пофигу на ip, есть кука сессии, юзер идентифицирован однозначно. Пишем миддлеварь, который будет по телу всех пост-запросов вычислять md5-хеш и сохранять его, когда в течение заданного интервала приходит один и тот же post-запрос от одного юзера - блокировать его и не пускать дальше, клиенту слать уведомление. Но это такой гемор... |
Цитата:
РНР скрипт должен - принять форму, проверить данные, и только после этого либо в базу, либо возврат формы. То что на клиенте что-то проверяется серверу должно быть по барабану. Браузеры могут запоминать содержание формы, а возвратившись на страницу с ней, можно и повторно отправить, а еще и по F5 в вашу базу можно написать сколь угодно мусора. Чтобы не получать таковой, нужно перенаправление страницы, можно и на саму себя. Хост не изменяет IP пользователя, это ваша фантазия. |
laimas,
Я понимаю о чём я говорю. Да скрипт проверяет данные, то что я забыл это написать-сути не меняет. Даже если есть пере направление, кому надо, тот мусора накидает. У меня стоит другая проверка и поверьте по F5 ничего не накидается... Я не говорил, что хост меняет ip. Провайдер меняет ip клиенту и да он меняется, я знаю о чём говорю Спасибо за вашу консультацию, но мне бы по сути... |
Max Power,
Цитата:
Цитата:
А может есть смысл докопаться до хостера с этим вопросом??? |
Цитата:
А большая часть интернет пользователей как раз сидит на динамическом IP, или для вас это открытие? Перенаправление это как раз одна из защиты от F5, дабы сбросить POST, никакие проверки этого сделать не могут. Прежде чем заказать товар, в магазинах предлагают регистрацию. А кому надо напакостить мусором, тому и куки не помеха. |
laimas,
Цитата:
Цитата:
В случае о чём говоришь ты я просто могу вернуться на страницу назад (в хроме так) и запрос отправиться повторно, если проверка херовая... $_POST вроде отчистится, но я смогу на такую страницу просто перейти со своего сервера через форму и задолбить тебе базу через скрипт (объяснять не буду, если сам не понял, то и не поймёшь). Это не панацея... Цитата:
Друг, ты бред несёшь, отвяжись от меня со своими аргументами, они глуповатые... |
Цитата:
Цитата:
Да хоть на прищепках висит и под паспортом, ведь отправляется, а не сервером читается. Цитата:
Это бред полный, разберитесь с тем что такое сбросить POST, а после чего гуляйте по истории в хроме, чтобы это утверждать. |
laimas,
Я не буду тебе объяснять даже. Ты лучше тогда все формы через ajax отправляй... И никакого пере направления не надо... А с ip -шниками да, ты прав человек отправляет данные приходит то, что он отправлял... Это несомненно бот, вот именно так и есть. и то что я именно давал доступ по паролю в админку и мониторил как у логина меняется ip адрес в зависимости от страницы тоже работа бота... Всё ты победил... Купи себе пироженное... |
Цитата:
Насчет глупых магазинов с регистрацией.... Ну-ну... Спецы, мать вашу. :) |
Часовой пояс GMT +3, время: 01:53. |