Сообщение от
XAMEHA
Nicholas
, это не объясняет тот факт, что капча проходит валидацию при физическом отключении интернета.
Всмысле? Как она может пройти валидацию, если я Вам только что объяснил принцип ее работы
А то, что у Вас при отключенном инете появилась зеленая галка, это может быть связано с тем, что Вы один раз ее правильно прошли, но обновления страницы не было (валидаторы например какие-нибудь на форме не пропустили постинг) и в скрытом поле ответа от сервера с uid капчи, осталось старое значение, в котором стоит признак, что она решена верно Но поскольку инет вы отрубили, новая капча не подргузилась и не обнулила это поле...
Решенная верно капча "протухает" на сервере через 6 минут, если со стороны защищаемого веб-сервера не было запроса на ее валидацию по uid.
После запроса защищаемым веб-сервером капчи по uid она сразу удаляется, так что использовать два раза один ответ от бэк-сервера не получится... При этом каждый ответ содержащий уникальный идентификатор капчи (uid) который подписан приватным ключом защищаемого веб-сервера и не может быть принят другим веб-сервером.
Алгоритм работы я описал в предыдущем посте.... Повторю еще раз, что
веб-браузер клиента не имеет никакой информации о правильно решении и отвечает только за передачу координат подвижных объектов на бэк-сервер KeyCAPTCHA и передачу ответа от бэк-сервера KeyCAPTCHA на защищаемый веб-сервер посредством скрытого поля формы.
Такой подход позволяет KeyCAPTCHA обновляться при неправильном решении без перезагрузки всей страницы (очень удобно, если на форме много полей) и работать на хостингах, на которых запрещены исходящие соединения, посредством альтернативного метода проверки через скрипт получения времени подписанного приватным ключом (этот режим задействуется, если в настройках сайта, на вкладке "Дополнительные" снять флажок "Разрешить исходящие запросы").
Всем, кто хочет разобраться или в чем-то сомневается советую посмотреть траффик между серверами и браузером, с помощью любых инструментов, самым распространенным из которых является FireBug вкладочка "сеть". Также можно взглянуть на наш универсальный PHP class, который есть в любом плагине, в нем видно, каким образом проходит валидация капчи на стороне защищаемого веб-сервера.
PS: в первую очередь при создании KeyCAPTCHA делался упор на безопасность, так что никаких "детских" болезней типа ответов на клиенте и прочих тривиальных методов ее обхода с помощью "манипуляций" с JS не существует "по определению", исходя из описанного мной алгоритма ее работы. Когда
клиент ни за что не отвечает, кроме как за отображение и коммуникацию между серверами. При этом вся "коммуникация" подписана приватным ключом защищаемого веб-сервера, который опять-же ни в каком виде не присутствует на клиенте и известен только бэк-серверам KeyCAPTCHA и защищаемому веб-серверу. Единственно чего можно добиться, с помощью JS-манипуляций, это, что покажется зеленая галка, но это никак не относится к прохождению капчи, защищаемый веб-сервер просто не примет поддельный ответ и скажет что капча была собрана не верно