LINUX.ORG.RU
ФорумTalks

Обфускация HTML для защиты от спама


0

1

Сабж, придумал ли кто-то такое до меня или нет?

Суть в том, чтобы выдавать очень странный HTML. Каждый раз случайные и бессмысленные имена полей форм, разный набор тэгов, мешанина нормальных букв с HTML-сущностями (для подписей к полям форм), использование разной вёрстки (то поле формы в div, то в table, то половина в div, половина в table, а ещё рандомный порядок полей в HTML, а в правильный вид приводится с помощью CSS позиционирования) с сохранением внешнего вида.

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

Единственный минус - сломается автозаполнение. Но иногда антиспам важнее, да и можно только для некоторых форм (анонимный постинг например, или регистрация), где автозаполнение не очень-то и нужно.

Поддержка ослов не всем важна.

★★★★★

Последнее исправление: KivApple (всего исправлений: 1)

Открою тебе маленький секрет: эффективный и не вызывающий баттхёрт антиспам можно и без каптчи сделать.

X10Dead ★★★★★
()
Ответ на: комментарий от X10Dead

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

KivApple ★★★★★
() автор топика
Ответ на: комментарий от dikiy

Что плохого в том, чтобы сделать формы регистрации неподдающимися автоматическому разбору? Я не говорю про всю веб-страницу.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

тем, что любая обфускация - идиотизм. И неважно происходит она на perl, С или HTML. Обфускация явный признак неправильной постановки вопроса - и еще более неправильного решения.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

Это защита не сколько от людей, сколько от спама и ботов, server-side код вообще может быть GPL. И тут обфускация отличается от других языков - можно гораздо больше потерять информации и поизвращаться. По сути сделать практически необратимой (только ручной разбор человеком и то он будет писать с нуля) - серверу то только имя полей знать надо, а что творится в браузере пользователя его не волнует.

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

а в результате браузер будет тормозить и глючить. Спасибо, обойдемся. От спама можно капчей защититься.

dikiy ★★☆☆☆
()
Ответ на: комментарий от dikiy

man antigate

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

KivApple ★★★★★
() автор топика
Ответ на: комментарий от KivApple

man вконтакте, там яваскрипт постоянно меняют, обфусцируют, добавляют новые защиты и т.д. - все обходят.

pi11 ★★★★★
()

то поле формы в div, то в table, то половина в div, половина в table, а ещё рандомный порядок полей в HTML, а в правильный вид приводится с помощью CSS позиционирования

<sarcasm mode=on>Да, это невозможно программно обойти.</thread>

pi11 ★★★★★
()

Если кому то будет надо чисто конкретно тебя поспамить (т.е будут специально точить спамилку под твой ресурс), то твоя защита не поможет в любом случае.
Нет никакой проблемы в том чтобы эмулировать тычки по формам и ввод в ишаке (используя любой api под него).
Даже на линуксе можно такую спамилку написать на xdotool+любойбраузер.

Ну а в случае если специально под тебя никто точить автоматику не будет, то как уже отметили поможет капча (её тоже можно сделать нестандартной, в итоге чтобы скормить её антигейту придется настраивать/скриптовать все специально под твой сайт).

winddos ★★★
()
Ответ на: комментарий от KivApple

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

Ну а если твой ресурс надо проспамить, то проспамят.
man едроботы

winddos ★★★
()

А что, воткнуть малюююсенькую капчу — вариант более дорогой?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от KivApple

если можно будет программно извлечь каптчу

Хотел бы я посмотреть на алгоритм автоматического взлома матан-капчи, или капчи, где предлагается выбрать из нескольких вариантов правильный (соответственно, тип капчи и содержимое выбираем, исходя из ЦА).

Eddy_Em ☆☆☆☆☆
()

Не делай этого.

spqr ★★★
()

Чем не подходят аналоги akismet (который для WP)? Ни одного спам-сообщения не прошло за полтора года :)

drakmail ★★★★
()

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

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

shahid ★★★★★
()

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

Binary ★★★★★
()
Ответ на: комментарий от Eddy_Em

капчи, где предлагается выбрать из нескольких вариантов правильный

В ручном режиме составляется словарь вариантов. У МТС была такая капча на отправку смс, информация из первых рук - ломали.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

В ручном режиме составляется словарь вариантов

Если у тебя будет тестик из нескольких сотен вопросов и случайно будет выбираться один из них, то замучаются ломальщики собирать все. А если еще и постоянно что-то добавлять...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Хотел бы я посмотреть на алгоритм автоматического взлома матан-капчи

Если символы читабельны для программы то взломать можно.

TDrive ★★★★★
()

спамилки могут эмулировать браузер без проблем вообще, забей

xtraeft ★★☆☆
()
Ответ на: комментарий от Eddy_Em

Если у тебя будет тестик из нескольких сотен вопросов и случайно будет выбираться один из них, то замучаются ломальщики собирать все.

За часик, с чашкой кофе. Антикапчу писать намного дольше.

А если еще и постоянно что-то добавлять...

То распознавание будет не в 100% случаев а в 90%. Дойдет до 50%, ещё раз перебрать словарик.

Вообще тест с вопросами это самое глупое что можно придумать.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

За часик, с чашкой кофе.

Во-первых, тебе распознавалка нужна будет. А ведь можно менять фон написания текста + шрифты.

тест с вопросами это самое глупое что можно придумать

Это сложнее, нежели капча со словом.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Во-первых, тебе распознавалка нужна будет. А ведь можно менять фон написания текста + шрифты.

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

Какого цвета фон, программе вообще пофигу, главное что от цвета букв отличается хотя бы на бит. Шрифты становятся одинаковыми после скелетизация. Для полного счастью нужно ещё рандомно искривлять текст но тогда у людей глаза будут вытикать прежде чем они успеют зарегистрироваться.

TDrive ★★★★★
()
Ответ на: комментарий от Eddy_Em

Это сложнее, нежели капча со словом.

Это +1 час работы над анти капчей.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Какой смысл в вопросах

Капчу просто распознал — и все. А в случае с вопросом надо еще и правильный вариант ответа выбрать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Такие вещи создают больше неудобств людям.

TDrive ★★★★★
()

Капчи сейчас какие ни придумывайте - кроме кейкапчи ничего не прокатит, а кейкапча сложная для клиентов.

Разпознавать нейросетью в большинстве случаев и не понадобится (хотя они успешно с этим справляются), есть куча сайтов, где добрые китайские мальчики за $1 вбивают 1000 капчей и дежурят круглосуточно. К этим сайтам есть API и инструменты для использования. Если ты так кому-то нужен, чтобы на тебе спамить - этот вариант будет в топе лидирующих.

Если хотите защитить формы: 1) надо генерировать GUID при запросе формы и давать на него ограниченного действия сессию. Не принимать формы без гуида и с реферером, отличным от своего сайта и страницы фомры. 2) основные поля можно переименовать, логин назвать паролем и наоборот. Поменять их местами, спозиционировав через CSS. 3) давать поле login, email или еще какое-нибудь в виде скрытого и при его заполненности - посылать нафиг (признак тупого робота). 4) рекапчу для успокоения.

Этого достаточно для защиты формы от спама. При этом GUID'ы и смены имен полей не должны быть «постоянными». Если вас будут спамить целенаправленно, это будет дуэль ботописателя и программиста в реальном времени, ботописатель будет довольно быстро реагировать на изменения в ваших логинах и паролях. Делайте так, чтобы из нельзя было предугадать и потом это использовать.

BaBL ★★★★★
()
Ответ на: комментарий от TDrive

Ну распознаешь ты капчу, а как ты ее научишь правильные ответы выбирать? Или будешь долбать сервер 100500 раз, чтобы статистики наскрести, а потом вручную выбрать? Так в этом случае тебя пошлют из-за флуда!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Вот смотри. Например ты сделал список из 100 вопросов и ответов на своем сервере. Вопросы выводятся картинкой с рандомным шрифтом, рандомными цветами и тд. Правильно?
Чтобы так взломать, нужно выдернуть все вопросы(это не проблема), написать на них ответы(не проблема), посчитать для каждого вопроса количество букв(не проблема), при анализе капчи считать не сами символы, а их количество(как 2 пальца), получить положительный результат хотя бы в 30% случаев, посмеяться над глупым админом который это придумал.

TDrive ★★★★★
()

Кстати, а нафига вообще все это, если можно ввести регистрацию? А регистрантов-спамеров банить. Задолбаются же 100500 разных почтовых ящиков заводить!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от TDrive

выдернуть все вопросы(это не проблема)

Тогда тебе придется по одной капче где-то раз в минуту дергать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Так в этом случае тебя пошлют из-за флуда!

Долбать сервер скриптом раз в минуту и уйти спать, с утра ответить на все вытащенные вопросы.

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Вот смотри. Например ты сделал список из 100 вопросов и ответов на своем сервере. Вопросы выводятся картинкой с рандомным шрифтом, рандомными цветами и тд. Правильно?



Даже этого не нужно.
Grayscale, уровни и вот перед тобой яркая черная надпись на светлом фоне. Распознается с довольно высоким уровнем попаданий. Причем она еще и обучается (если нейросеть)

Посмотрите статьи о распознавании на той же хабре.
http://habrahabr.ru/post/116222/
http://habrahabr.ru/post/143129/
http://habrahabr.ru/post/113245/
http://habrahabr.ru/post/74326/

вы сильно отстали от современных технологий OCR'а

BaBL ★★★★★
()
Ответ на: комментарий от Eddy_Em

Регистрацию на боте проходить можно, про почтовые ящики http://10minutemail.com/10MinuteMail/index.html (срыв покровов)

Нет ничего лучше забористой капчи или модерации каждой регистрации/анонимного сообшения.

TDrive ★★★★★
()
Ответ на: комментарий от BaBL

Даже этого не нужно.

Сам знаю, достаточно чтобы шрифт отличался от фона хотя бы на 1 бит. Я смоделировал ситуацию описанную автором.

За ссылки на статьи спасибо, будет интересно почитать.

TDrive ★★★★★
()

Тупой автоматический спам легко убить маленьким джаваскриптом, без выполнения которого сервер не примет форму. Какое-нибудь копирование параметра в hidden поле. Или капча вида «введите 1234». Умный автоматический спам, адаптированный под твой сайт, ты не убьёшь никак. В твоём случае он просто запустит браузер, скопирует в нужные поля спам и нажмёт submit. Попутно разгадав капчу. Ну или проще - будет использовать <input-ы в определённом порядке а не по именам. Хорошо только то, что обычно делать такой спам дороже, чем выгода получаемая от него.

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

Тупой автоматический спам легко убить маленьким джаваскриптом, без выполнения которого сервер не примет форму. Какое-нибудь копирование параметра в hidden поле. Или капча вида «введите 1234». Умный автоматический спам, адаптированный под твой сайт, ты не убьёшь никак. В твоём случае он просто запустит браузер, скопирует в нужные поля спам и нажмёт submit. Попутно разгадав капчу. Ну или проще - будет использовать <input-ы в определённом порядке а не по именам. Хорошо только то, что обычно делать такой спам дороже, чем выгода получаемая от него.



1. А так же ты отсекаешь народ с отключенным яваскриптом или включенным плагином noscript. Это деструктивный метод, которому в интернете не место. Максимум - на своей личной домашней страничке.

2. Современные боты успешно исполняют JavaScript, не забывайте про давно развивающийся nodejs тот же. Многие боты грузят полностью страницу в WebKit и отправляют форму уже с нее.

И чего ты добился в итоге?

BaBL ★★★★★
()
Ответ на: комментарий от Legioner

капча вида «введите 1234»

Старая добрая капча вида «введите слово в 5 позиции, в 20 строке на 19 странице» :)

Xellos ★★★★★
()
Ответ на: комментарий от TDrive

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

Минимум трудов по созданию капчи — максимум усилий у козлов, чтобы эту капчу поломать.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.