За последние 24 часа нас посетили 23298 программистов и 1828 роботов. Сейчас ищут 1067 программистов ...

Как ограничить повторные действия пользователя?

Тема в разделе "PHP для новичков", создана пользователем battrack, 12 мар 2016.

  1. battrack

    battrack Активный пользователь

    С нами с:
    17 фев 2009
    Сообщения:
    16
    Симпатии:
    0
    Разрабатываю веб-сервис, который будет предоставлять платные услуги. Т.к. детали раскрыть нет возможности, то условно будем считать что есть некая кнопка, доступ к которой нужно ограничить. Т.е. клиент может нажать бесплатно ее два раза (и получить услугу), но все последующие нажатия уже должны быть оплачены.
    Первый вопрос: как распознать тот факт, что клиент оплатил услугу, в случае если он не авторизован и не зарегистрирован в системе (регистрация не обязательна)? Я вижу только вариант с отправкой клиенту некоего кода, после оплаты, с помощью которого он сможет на сайте активировать кнопку (и добавить себе еще кликов).
    Второй вопрос: как вообще контролировать и считать нажатия кнопки клиентом? С помощью сессий/куков? Но ведь сессию можно сбросить. С помощью IP? А если IP динамический? Может кто подсказать как вообще реализуются такие вещи? Какие есть способы?
    Повторюсь, что речь идет не об авторизованном пользователе.
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Такие вещи как раз делаются с помощью регистрации. По-другому никак нельзя точно определить пользователя.

    Добавлено спустя 3 минуты 36 секунд:
    Либо давать ему код, в базе хранить счётчик, сколько раз этот код использовался. Для удобства, чтобы не вводить код каждое нажатие кнопки, записывать счётчик в сессию. Смена айпи/смерть сессии - снова вводить код и создавать новую сессию.
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Никак

    Добавлено спустя 4 минуты 34 секунды:
    Пытаются многие, все приходят к одному - это пустая затея. Айпи однозначно не катит т.к. из одного внешнего адреса выходят тысячи людей. Все уловки, связанные с идентификацией конкретного браузера проваливаются при простом "режиме инкогнито" - пользователю не понадобятся никакие хакерские знания.
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    эмм.. не знаю как поможет, в некоторых местах при регистрации надо указывать номер кредитной карты.
     
  5. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Да, но с такими вещами лучше не шутить. Не думаю, что автор сможет представить адекватное решение по защите данных карты. Лучше уж тогда сделать простую регистрацию по номеру телефона.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Поглядите на него он разрабатывает.
     
  7. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    подлец?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Т.к. он верит в это искренне, то нет - никак не подлец.
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Регистрация по номеру телефона наиболее оптимальна, но если есть смысл использовать сервис в масштабах, близких к промышленным, то это не спасает. У "профессионалов" целые пакеты симок и они очень окупаются при многократном использовании (каждый номер регится на множестве сервисов).