Безпека сайтів
Давайте-но поговоримо про таку важливу річ як безпеку сайту. Для тих, хто тільки починає або не є програмістом це важливо подвійно. Погодьтеся, буде дуже прикро втратити сайт, який ви ніжно вирощували протягом довгого часу. Якщо сайт до того ж приносить великий дохід, або висить на перших місцях по сильно конкурентним тематиками - то він напевно рано чи пізно приверне чиєсь нездорову увагу.
Скажу відразу, розібрати можна абсолютно все. Питання тільки в часі і складності. Тому і треба зробити так, щоб «злом» сайту був якомога складніше, а втрати мінімальні. Останнім таким яскравим прикладом став ebay.com. Нам до ebay ще рости і рости, але захиститися навіть від школярів, вперше дізналися про уразливість явно варто. Навряд вони «поведуть» ваш сайт, але гидот наробити можуть. Від псування контенту, до видалення бази даних.
Почнемо по-порядку, з конкретних вразливостей, до дірок в CMS.
Найпоширеніші уразливості - всілякі ін'єкції.
SQL ін'єкція - один з поширених способів злому сайтів і програм, які працюють з базами даних, заснований на впровадженні в запит довільного SQL-коду.
Чим загрожує. Дає можливість виконати довільний запит до баз даних - читання / запису / видалення / зміни даних.
Методика атаки: Вивчається поведінка скриптів і дані в POST / GET запитах, cookie, HTTP_REFERER, AUTH_USER і AUTH_PASSWORD. Зловмисник просто перебирає параметри, підставляючи довільний код (найчастіше просто лапки). Якщо сторінка якось неправльного на це реагує, і не лається на невірний формат параметрів - вразливість є.
Захист: Ретельно фільтруємо все вхідні параметри, значення яких використовуються для постороения SQL запиту.
Як перевірити свій сайт: SQL Inject Me - як легко здогадатися з назви, цей плагін допоможе вам перевірити сайт на наявність sql ін'єкцій. Ви можете змусити його проаналізувати всі get параметри і форми на поточній сторінці. Цей плагін створює величезний трафік і іноді сайти навіть падають від його роботи :). Тому не варто включати відразу все перевірки одночасно.
Доповнення: Небезпечна для «сусідів» по хостингу, якщо хостер некоректно налаштував сервер (а це буває досить часто).
Чим загрожує: Можна виконати довільний JS-код в браузері жертви - отримати cookei жертви, або навіть виконати деякі дії від імені цього користувача. Іноді використовується для DDoS.
Як перевірити свій сайт: XSSMe - плагін для Firefox перевіряє на вразливість до XSS.
Це дві основні атаки на сайти незалежно від вашої CMS.
Тепер поговоримо про їх власну безпеку.
- ... сайти, які використовують, безкоштовні CMS в середньому в чотири рази частіше піддаються зараженнями і потрапляють в чорні списки, ніж сайти на комерційних CMS.
- У той же час серед сайтів на CMS TYPO3 не було виявлено жодного зараженого сайту. Ми пов'язуємо цей же час, що команда розробки TYPO3 приділяє значну увагу підвищенню безпеки своєї CMS.
- Своєчасно оновлювані версії CMS знижують ризик появи проблем в середньому в два рази. Найбільш явно користь від переходу на свіжі версії помітна на прикладі Joomla та WordPress.
- версія того чи іншого веб-сервера не є вирішальним фактором безпеки сайту. Тобто все одно на Nginx, Apache або IIS ваш сайт крутиться.
- Яндекс заносить сайти в чорний список в два рази частіше, ніж Google. При цьому перетин списків Google і Yandex становить всього 10% від загального числа занесених до чорних списків сайтів. Завжди стежте за наявністю в цих списках вашого сайту.
- Більше половини власників, чиї сайти активно використовуються для просування товару або послуги, не знали про наявність проблем з їх сайтами.
- Власники 4500 сайтів, (з 30 000) брали участь в дослідженні, схильні до ризику фінансових втрат через наявні на сайті проблем. Це майже кожен сьомий сайт.
Сайти зроблені за принципом фріланс => фрілансер з досвідом кілька місяців => joomla => +20 сторонніх модулів => здача проекту => забули на рік 100% призводить до образовиванія в сайті величезної кількості дірок і врятли тут всю відповідальність можна можливий на cms. »
- Стежимо які модулі і звідки встановлюємо. З неперевірених джерел навіть шаблон сайту може нести небезпеку. Особливо, якщо він продається, а ви його «знайшли» безкоштовно.
- Оновлюємося, обновляємося і ще раз обновляємося. Запам'ятайте, якщо ви або ваш програміст вніс правки на сайт, які препятсвуют оновленню - ризик підхопити «заразу» в рази зростає.
- По можливості користуємося SFTP, шифрованих каналом замість застарілого FTP. Перехопити ваші дані і розшифрувати їх в такому випадку стає набагато важче. Просіть хостера дати вам такий доступ, якщо не дадуть під дивними отмазками - нафік такого хостера.
- Якщо у вас VPS / VDS - сервер, найміть хорошого адміна для його обслуговування, або оплатіть послуги у хостингу. Племінник дяді Васі, тільки що закінчив «крутий ВНЗ», може виявитися юним даруванням, а може і ні. За його помилки розплачуватися вам.
На цьому все. Будьте пильні.