Загрузка...

Как сделать систему каптчи?

Тема в разделе Python создана пользователем 7strest 27 авг 2020. 239 просмотров

  1. 7strest
    7strest Автор темы 27 авг 2020 Пьяненький 70 3 сен 2019
    делаю телеграм бота на питоне, сделал простую генерацию 2 чисел(типо сложите 2 числа ), и сделал чек сообщения но каким то хуем он чекает приведущие сообщения.
     
  2. Pcholken
    Pcholken 27 авг 2020 Заблокирован(а) 819 27 янв 2019
    код бы скинул для приличия
     
  3. Pandazz
    Pandazz 27 авг 2020 68 5 май 2020
    Сделай систему стадий с помощью бд
     
    1. Pandazz
      Pandazz, генерируешь 2 числа -> записываешь их в бд -> записываешь стадию прохождения капчи пользователем -> сверяешь стадию при новом сообщении -> если стадия совпадает то складываешь 2 числа которые записал в бд и сверяешь с сообщением пользователя
  4. vexly1337
    vexly1337 27 авг 2020 Заблокирован(а) 7 2 авг 2020
    Без кода тебе тут никто не поможет.
     
    1. Pandazz
    2. vexly1337
      Pandazz, потому что не понятно в чем у него проблема. Я даже не знаю как можно не догадаться сделать генерацию двух чисел, получить их сумму и ждать пока пользователь введет их? State в aiogram должен вроде справиться или же БД и вообще по разному можно это реализовать.
  5. lefall
    lefall 28 авг 2020 Заблокирован(а) 298 26 сен 2019
    Вот:

    Код
    msg = bot.reply_to(message,"Введите число:")
    bot.register_next_step_handler(msg, функция в которую передастся ответ)
     
  6. Reverlight
    Reverlight 28 авг 2020 Пью чай 27 23 июл 2020
    Здесь проблема как мне кажется в другом. Нужно реализовать систему, которая ждет определенный результат капчи для конкретного пользователя.

    Допустим Пупкин должен сложить 2+2, а Вовочка 3+3, и нужно ответ правильный (с которым вы будете сверять их ответы) хранить отдельно.

    Вот как бы я это сделал:
    Заходит чел вы получаете его чат айди, и результат капчи загоняете в бд, когда он вводит ответ бот ищет строку в бд где есть его чат айди, и в ней же сравнивает введенную им капчу и с правильным ответом

    Пример сгенерированной бд:
    id=1; user_chat_id=12312309, captcha_answer=6,
    id=2; user_chat_id=43531232, captcha_answer=4,

    И Вовочка у нас тут по чат-айди первый, получаем сообщение от Вовочки допустим 7, а в строке бд это 6, значит капча не пройдена.
    А у Пупкина сообщение 4, и по чат-айди опять же находим эту строку в бд, все совпало значит капча пройдена идем дальше.

    П.С:Лучше использовать те же строки в бд, просто заменять ответы капчи. Т.е если пользователю попалась новая капча тогда мы обновляем строку в бд captcha_answer и ждем сообщение новое от пользователя.
     
    1. Reverlight
      Reverlight, есть ещё вариант он может быть полегче. Вместо ввода ответа на капчу, сделать инлайн кнопки с рандомным порядком, и при выборы одной из них где правильный ответ капча будет пройдена. Так можно обойти бд. Но я думаю через саму телегу можно будет спалить эту систему. Так что в таком случаи может быть проблема.
Top
Загрузка...