Загрузка...

How to make a captcha system?

Thread in Python created by 7strest Aug 27, 2020. 240 views

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

    Code
    msg = bot.reply_to(message,"Введите число:")
    bot.register_next_step_handler(msg, функция в которую передастся ответ)
     
  6. Reverlight
    Reverlight Aug 28, 2020 Пью чай 27 Jul 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
Loading...