Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как работает капча?

ИнтернетЗачем я это узнал?+2
Я не знаю Кто я
  · 21,3 K
Программист, хакер, сноб, кухонный философ, эксперт во всех вопросах(нет).  · 11 нояб 2017

Какая каптча? Есть разные виды каптчи, но в целом они все работают одинаково. Чтобы было понятнее, я объясню на более привычной всем, текстовой каптче:

Предположим, что ты хочешь авторизироваться на сайте, где на странице авторизации есть каптча. Когда ты заходишь на страничку с каптчей, на самом деле твой браузер выполняет не 1 запрос к сайту, а несколько: во-первых, если стили(CSS - то, что делает сайт "красивым") не включены в текущую страницу, а подключаются из других файлов, то запрашиваются эти стили. Тоже самое с разными JS скриптами и картинками. И с каптчей тоже. Чтобы у вас в определенном месте сайта появилась каптча, сайт командует вашему браузеру отправить запрос на получение каптчи. Когда скрипт, отвечающий за формирование каптчи получает ваш сигнал о том, что нужно выдать эту самую каптчу, он начинает ее генерировать.

Детали генерирования каптчи у всех сервисов каптчи разные. Но в целом, сначала им нужно сгенерировать какое-то задание(в текстовой каптче это текст, на картинке выше - это "kill captcha"), сделать из него картинку, исказить ее так, чтобы затруднить программе распознавание текста, а потом отдать пользователю id этой каптчи(чтобы введенный пользователем текст мог как-то идентифицироваться и провериться на правильность) + саму каптчу. Когда вы решаете каптчу и пытаетесь перейти на следующий этап(например, нажимаете на кнопку "Войти", чтобы сайт проверил правильность введенного логина и пароля), перед тем как проверить и обработать введенные вами данные сначала проверяется каптча. Так как если данные отправил не человек(а программа, например) обрабатывать данные не имеет смысла.

Так вот, когда ты пытаешься авторизироваться, на сервис с каптчей уходит чаще всего 2 параметра: первый - это ее id, второй - твое решение этой каптчи. Если решение было хорошим и прошло проверку, сервис предоставляющий каптчу отправляет сайту на котором ты пытаешься войти в свой аккаунт id этой каптчи, а сайт регистрирует ее как пройденную, и когда он получает твой запрос с логином и паролем, вместе со всем этим он еще и получает id твой каптчи. Дальше он смотрит у себя в базе решенных каптч, и если там есть такой id, то он проверяет на правильность ввод твоего логина и пароля, и если ты ввел все правильно, то ты попадаешь в свой аккаунт.

И тут возникает вопрос - а зачем мне каждый раз решать каптчу, может быть я просто решу одну, а дальше буду отправлять в запросах id этой решенной каптчи? К сожалению, после того, как проходит твоя авторизация, id твоей решенной каптчи из базы удаляется.