|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/400 19 Dec 2002 15:43:04 To : Andrey Brindeew Subject : Re: FORM submitters -------------------------------------------------------------------------------- Здравствуй, Andrey Brindeew. AB> Hужен метод борьбы с простейшими постильщиками форм (авторы которых AB> посмотрели один раз как эта форма работает и написали тривиальный скрипт). AB> Предлагается делать вот что: AB> 1. При запросе формы выдаем в хидден-поле время + случайное число + md5sum AB> (с нашим секретным ключом) от первых двух. AB> 2. Если при обработке высчитанная md5sum по тому же алгоритму, что и AB> имеющаяся в форме, совпадают и Age не старше N (секунд, минут, часов - по AB> вкусу) (Age = Now() - дата_в_форме), то запрос принимается, в противном AB> случае - отвергается. AB> Есть ли большие недостатки у такого метода борьбы? Есть. Если честно сэмулировать работу браузера и разобрать твою форму, то постинг получится. И это вполне себе тривиальный скрипт. Hесколько изящнее будет давать полю переменное имя - это чуть менее тривиальный скрипт. Придется честно разобрать весь HTML. Hо это тоже несложно. AB> P.S. Сомневаюсь, что авторы программ типа AB> http://www.gasaw.com/sw/pantera/index.htm будут писать специфический метод AB> борьбы именно с нашим сайтом. Если будут - тогда будем баннить анонимные AB> прокси-сервера. Описанный метод - универсальный. Специфический потребуется, если не разбирать форму. Для лечения от грамотных роботов пока ничего умнее, чем попросить юзера ввести руками в поле формы случайное слово, показанное на рисунке, не придумали. Возможен еще вариант, когда некоторое поле заполняется по не самому тривиальному алгоритму жабоскриптом (я один такой видел) - тут уже придется писать специфический метод, а именно разбирать эту программу и эмулировать ее на том, на чем пишется робот. Еще вариант (модификация варианта с картинкой для текстового браузера) - вывести сравнительно случайную фразу и попросить (в ней же, на естественном языке) набрать, скажем, третьи символы слов через одно. -- Artem Chuprina Communiware.net RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/122.256, ICQ: 13038757 --- ifmail v.2.15dev5 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/144543ca6e41b.html, оценка из 5, голосов 10
|