За последние 24 часа нас посетили 6884 программиста и 634 робота. Сейчас ищут 112 программистов ...

Для теста-разминки

Тема в разделе "PHP для новичков", создана пользователем Вероломство, 9 июн 2021 в 14:01.

  1. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    371
    Симпатии:
    12
    @ADSoft главный предпосыл - это то, чтобы при обновлении страницы и соглашении с повторной отправкой данных по F5 они не отправились, а так же чтобы они не отправились при свайпе страниц на девайсах с нажатием кнопок форм :) а вот защита от курла - это уже второе: возникли мысли не связать ли их до кучи


    и я всё-равно не догоняю: ну получили мы из кук ключ сессии ну и отправили их назад, НО ведь на скрипте стоит session_start и при curl_exec, который прислал нам полученный (ПРОШЛЫЙ) ключ сессии, по session_start будет сгенерен новый SID, который не совпадёт с присланным, тут даже session_regenerate_id() не нужна для обновления сида, она тут только для физического нажатия кнопки
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    2.831
    Симпатии:
    533
    Адрес:
    Татарстан
    1. От повторной отправки обычно редирект ставят на другую страницу в контроллере, если Аякс - блокируют кнопку на момент отправки + при успехе очищают форму
    2. не будет, если curl примет куки, а при повторном запросе - передаст их - для сервера это тот же клиент будет, session_start() стартует сессию, а не перегенерирует каждый раз.... regenerate - да... но оно отработает только при успешной отправке получается ... цель спамера достигнута.

    Большую часть простых спамеров конечно отсеет - не каждый будет заморачиваться искать че там передать, куки итд
     
    Вероломство нравится это.
  3. Вероломство

    Вероломство Активный пользователь

    С нами с:
    19 июн 2017
    Сообщения:
    371
    Симпатии:
    12
    то есть нужно сэмулировать поведение клиента c куками, а не просто забрать и попытаться подсунуть SID