Сьогодні в проекті антитоп - вебсайт http://ukrbash.org
ukrbash.org - національний цитатник. Мова буде йти про нього.
Вітання!
Сьогодні позачерговий випуск проекту AntiTop, і пишу я його по причині великої ефективності коду, який був розміщений в інтернеті завдяки мені та моєму партнеру.
Отже, невеликий графік.
Після спілкування з модератором даного проекту - "на сайт відбувалась ДДОС атака".
Загалом - погоджуся. Хоч і реальною атакою це назвати важко - швидше "дружня атакочка".
Disclaimer
Процедура, обрана для даної події повністю зворотня і робилась після переконання наявності резервної копії. Крім того - в мене є збережені всі дані та статистика "накрутки". Крім того - my.ukrweb.info - постійний читач УкрБашу і даною дією намагається зробити його кращим!
Спочатку трошки прелюдії.
Реалізація голосування - дуже ефективна та важлива частина більшості web2.0 проектів. Вони формуються на основі таких голосувань. Вся їхня структура та суть побудована на голосуваннях та фідбеках. Отже в такому випадку важливим фактором є безпека, бо посягання на голосування можуть повернути проект зовсім в протилежний бік. Скажімо конкурент, для підняття рейтингу свого проекту може завідомо завалити Ваш, опустивши в 0 найцікавіші частини.
На графіку відображено приклад "тупої" накрутки личільників всіх статей з ТОРу. В результаті на арену виходять "нецікаві" низькорейтингові статті, які підсвідомо можуть сформувати в користувачів проекту негативне враження.
Нажаль, на момент публікації статті помилка невиправлена, тому код, який спричиняє таку "бідосю" я опублікую лише після реального "налагодження" роботи.
"Людія"
На протязі 6 годин різноманітні ІР адреси голосували в мінус статті з ТОРу УкрБаша. Нажаль захисту від цього практично не існує, але захист від "дурня" - життєво необхідний, і реалізація цього захисту - за ukrbash.org. Тестування захисту за my.ukrweb.info - завжди допоможемо в цьому.
Рекомендації
- Контроль частоти голосувань - обмежити зверху і привязати обмеження до одного ІР
- Додати перевірку referrer в момент голосування
- Віддачу голоса анонімним користувачем ускладнити додатковим кроком, залежним від випадкових чисел, але мінімально ненавязаним ускладненнями
- Реалізувати обробку результатів голосування не одразу, а з невеликою затримкою - скажімо раз в добу, або раз в кілька годин - тоді зміни на вебсайті можна зафіксувати більш чітко і незамітно для користувачів
- Ускладнити метод голосування, переробивши його не через GET, а через POST
Висновок
Безпека - це важливо!
І вивчення сторони взлому - це перший крок до розуміння самої безпеки.
Успіху Вам!
PS
Проект перейшов із стадії альфа в стадію бета.
Для наступних тем сподіваюсь на Ваші пропозиції.