вторник, октября 31, 2006

Вышел GWT 1.2 Release Candidate

Из заявленного особо интересно появление com.google.gwt.http.client, а то возможности HTTPRequest прямо скажем не впечатляли широтой и охватом. Теперь можно работать с заголовками, обрабатывать ошибки вылета по таймауту ну и т.д. и т.п. Т.е. теперь осталось ещё меньше причин для вставок на javascript. Вполне ощутимый шаг вперёд.

Полный список изменений(англ.)

Для upgrade'а в эклипсе я заменил все пути в проекте к старому sdk на новый путь без версии (скажем к примеру на c:\gwt) куда и скопировал новый SDK, затем открыл проект и понажимал на все *.launch файлы в корне. На этом процедура апгрейда была успешно завершена. На ноутбуке запуск в hosted mode стал заметно шустрее.

суббота, октября 14, 2006

Идеи по поводу борьбы с автоспамом форумов

Сейчас наверное нет уже ни одного владельца форума, который не столкнулся бы с проблемой спама. Ну разве что форуму пару дней отроду. Можно конечно тупо удалять вручную спам-посты, но это мягко говоря неразумно - против автоматических средств использовать ручной труд. Активация новых пользователей вручную, captcha - всё это уже давно неэффективно против спамеров.

Чтобы бороться с врагом, надо его изучить. Итак приступим к обзору вооружения спамеров. Для современных продвинутых спамилок не проблема авторегистрироваться с верификацией по e-mail, обходить практически любые более-менее распространённые captcha и некоторые спамилки даже умеют преодолевать некоторые распространённые защиты с помощью javascript'а. Но тем не менее спамилка - это просто программа и никакого искусственного интеллекта там нет.

Кроме взлома captcha обычно происходит просто анализ страницы с формой и либо просто поиск шаблонных элементов для применения заданного для этого шаблона метода спама, либо(в расчёте на то что можно постить незарегистрированным пользователям) анализ названий полей формы с попыткой отправить сообщение.

Итак где мы можем помешать роботу зарегистрироваться? Ну например воткнуть фотографию со слоном и попросить написать что изображено на картинке. Естественно фотографий должно быть несколько и желательно периодически добавлять новые, удаляя старые, чтобы защититься от тупого ввода в базу шаблона для конкретно вашего форума.

Также для защиты можно использовать то, что спамерские боты не умеют исполнять javascript. Например на странице с отправкой поста вставить javascript, который вставит в форму скрытый элемент с определённым значением - так как бот не умеет выполнять javascript, то он не сможет вставить этот элемент и присвоить ему указанное значение. Так как по идее боты могут проанализировать javascript на примитивном уровне, то желательно воспользоваться замечательной функцией eval чтобы скрыть наше намерение вставить элемент в форму и присвоить ему определённое значение.

В принципе таких методов хватит для успешной борьбы с автоспамом форумов.

Изучая баги браузеров. История которая никогда не кончится

На этот раз я столкнулся с багом Оперы существующим как показал поиск с древних времен. А именно багом связанным с игнорированием свойства selected элемента option. Т.е. я попытка установить выбранный элемент списка путем установки selected у конкретного option не работает в опере, причем похоже только в ней. Естественно проблема решается через установке selectedIndex: select.selectedIndex = selIndex. Но всё равно, лично меня поразило что проблема не решается годами. Если такое было бы в IE, я бы не удивился.

Тут прочёл о том что багов то у Оперы судя по всему не мало. К примеру выяснили, что опера не понимает десятичные доли процента, а также версия 9.02 имеет непонятный баг при переходе на ссылку с анкором равным id элемента. Подробнее об этом читайте и смотрите здесь: http://xhtml.ru/experiment/browser_day/ .

Ну и назакуску - полезный ресурс с багами IE: http://www.positioniseverything.net/explorer.html .