миньет в вашем городе
[info]skavish
я вот тут подумал можно ли написать капчу которую не распознать ни роботу ни любителю порно. покритикуйте если есть желание.

сначала что известно. известно что можно сделать капчу которую роботам будет ну очень сложно распознать. поэтому передовые спамерские технологие просто показывают капчу человеку обещая приз если он отгадает (проход на странице с голыми тетками). то есть нам нужно забороться именно с этим случаем, показом человеку.

но как можно забороться с показом человеку если все что нужно сделать роботу это переслать картинку с капчей человеку? один из вариантов это например показывать капчу не картинкой, а скажем программно - флэшем. пример:

- робот заходит в lj чтобы оставить коментарий с миньетом.
- lj на каждый такой запрос генерит ключ в котором зашифрован ip с которого зашел робот и выдает капчу в виде флэшика в котором происходит следующее: при показе флэшика он шлет на сервер запрос на капчу с тем самым зашифрованным ключем. сервер сравнивает ip зашифрованный в ключе с ip запроса и если они разные то выдает ошибку. если одинаковые то шлет уже настоящую капчу которую флэшик показывает.

то есть скажем наш робот не сможет показать капчу человеку для отгадки потому что человек этот будет сидеть уже на другом ip чем тот с которого робот делал оригинальный запрос.

мне кажется что это должно работать, но я не специалист в этих вещах. но допустим это работает.

дальше понятно что робот может сам попросить капчу со своего ip и потом уже переслать ее человеку. вот тут мы делает такой трюк. сама капча это тоже флэшик в котором текст капчи разбит на кусочки (не буквы, а именно разные геометрические формы) и перемешан каким нибудь ключем который зависит от ip робота. то есть если робот перешлет этот флашик человеку для отгадки, то чтобы увидеть текст человек должен будет сидеть на том же ip что и робот что понятно не так.

дальше робот может схитрить. он может запустить капчу и потом сделать ее скриншот и послать уже капчу как картинку человеку. с этим мы боремся таким образом. вместо того чтобы просто показать капчу за раз мы будет показывать все эти кусочки с какой нибудь частотой. то есть человек (на правильном ip) будет видеть капчу, но если сделать скриншот то в каждый момент на экране будет только часть капчи.

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

что-то мне кажется что это может работать, хотя наверняка тут есть дыры про которые я не подумал.

Home