Sql-ін'єкції як зламати сайт і як від цього захиститися

Всім привіт, сьогодні буде не звичайний пост. Насправді я не фанат цих SQL ін'єкцій та іншого шлаку в плані зараження сайтів вірусами.

Але тим не менше, проблема сьогодні дійсно актуальна.

Так ось, в цій статті я спробую розповісти трохи про те як ламають сайти, розповім про те як я лікував сайти клієнта а також зроблю цікава пропозиція кожному Новомосковсктелю!

SQL-ін'єкції - спосіб зламати сайт, а точніше його базу даних.

Що таке SQL?

Перш ніж перейти до опису процесу злому за допомогою SQL-ін'єкцій, спочатку розберемося, що собою являє SQL. SQL - мова програмування, який працює з базами даних. За допомогою цієї мови інформація в базу додається і видаляється. Читання, редагування і інші дії відбуваються за допомогою SQL.

Що таке SOL-ін'єкція?

Говорячи простою мовою - це атаки на базу даних. Ця атака змушує код, який написав програміст, працювати не так як планувалося.

Приклад з життя. Папа залишив на столі записку мамі «Дай Вані 10 рублів», але написав записку корявим почерком. Хитрий синок Ваня прийшов раніше, ніж мама і дописав ще один нуль. Вийшло лист такого змісту: «Дай Вані 100 рублів».

Так ось записка з прикладу - це SQL-запит, який тато відправив мамі, а хитрий синок - хакер, який вміє змінювати запити, тому що знає, як вони працюють.

Sql-ін'єкції як зламати сайт і як від цього захиститися

Як працюють SQL-ін'єкції

Варто сказати, що від таких атак є захист, і про неї мова піде пізніше. Так ось насамперед, перед тим як зламати сайт потрібно визначити, чи можна це зробити. Визначається це за допомогою деяких SQL-запитів, які відправляються на сайт. Так от якщо такі запити не дають результатів, то сайт захищений і SQL-ін'єкції марні. Але половина сайтів в Інтернеті не використовують ніякого захисту.

Якщо надіслані запити дали знати що захисту на сайті немає, то можна сміливо зламувати його. Як вже говорилося в попередньому розділі, SQL-ін'єкції робляться за допомогою відправки команд замість даних, які чекає сайт. Команди можуть бути різні. І робота цих команд залежить від ступеня захисту сайту.

  • Логіни і паролі
  • Інформація про клієнтів
  • Товари інтернет магазинів
  • Замовлення на сайтах
  • листування
  • Приховані сторінки сайту
  • Захист від SQL-ін'єкцій

Архімед говорив: «На кожну дію знайдеться протидія». Боротися з такими атаками можна. Перший спосіб боротьби з ними полягає в фільтрації даних, які відправляються на сайт.

Якщо від користувача очікується введення числа, наприклад рік народження, то перед тим як зробити запит збереження цієї інформації потрібно перевірити чи дійсно прийшло число, а не команда.

Читайте також: Що таке інстаграм, як підписуватися і відписуватися від всіх в інстаграме?

Ще один спосіб захисту - усічення інформації. Нехай сайт чекає від користувача введення віку. Зазвичай вік - це двозначне число. Так от якщо від користувача прийде двадцять символів, то для запиту візьмемо тільки перші два, а не весь рядок.

Також використовуються алгоритми підрахунку ключових слів. Ключові слова - команди, які розуміє база даних. Так от якщо перед тим як користувач відправив дані таких слів було 3, а після того як дані прийшли, їх стало 5, то це SQL-ін'єкція, і виконувати її не слід.

Звичайно якщо ви не професіонал із захисту інформації, то ви не зможете протистояти досвідченим хакерам. Але в той же час, для того що б захистити невеликий сайт, атакувати який будуть хіба що школярі, що б погратися, навряд чи вам знадобляться супер-заходи безпеки. Але якщо все-таки у вас сайт, на якому зберігається конфіденційна інформація людей, то краще себе убезпечити і довірити захист професіоналам.

Sql-ін'єкції як зламати сайт і як від цього захиститися

Як я лікував сайти клієнта

А тепер трохи практики. Ви вже знаєте, що я надаю послуг всім бажаючим з чищення сайтів від яких вірусних, в т.ч. і від SQL ін'єкцій. Про це я писав ось в цій статті.

Так ось, до мене звернувся якийсь Сергій, попросив 3 сайта підлікувати. Я, звичайно, взявся.

Але то що я побачив потім - мене просто вразило. Я до сих пір в шоці і не можу відійти.

Ось результати сканування і лікування першого сайту:

Я просто в шоці був, коли побачив такі цифри.

Це результат автоматичного сканування і видалення. Я не фанат автоматичних скриптів, тому що часом вони видаляють потрібні файли.

У цьому випадку так і сталося, після «лікування» скриптами - веб-сайт не запускався. Просто тому що були заражені ВСЕ js-скрипти.

Ось результат сканування і лікування другого сайту:

Я вже навіть порадів за те що кількість вірусних в два рази менше.

Але тим не менш, результат той же.

Засмучує мене це не по-дитячому.

Читайте також: Як створити якісну структуру сайту: схеми та рекомендації щодо поліпшення

Ось і як мені працювати в таких умовах? Скажіть мені на милість?

Моя пропозиція Новомосковсктелю

Випадок з цими трьома сайтами змусив мене задуматися про те, як мало люди знають про безпеку сайтів і блогів.

Тим більше я дивуюся блогерам, які повинні плекати свій блог, але не роблять цього.

Погодьтеся, що блог - це ваш актив, які повинен приносити плоди. Навіщо ж його губити так?

Я пам'ятаю, ще подумав:
«Оце був би список правил, які треба виконувати щоб не заражатися вірусами, якийсь чек лист б дістати де-небудь».

І прямо ось буквально на наступний день, я цей чек лист побачив.

Знайшов я його у багатьох відомого блогера - Олександра Борисова.

Я прекрасно розумію, що сам Олександр не технар, і навряд чи б всі технічні моменти він би розписав в цьому курсі. Але фішка в тому, що він записував цей курс разом з успішним практиком-вірусолога. Який як раз-таки спеціалізується на таких речах.

Sql-ін'єкції як зламати сайт і як від цього захиститися
Якщо ви упровадите у себе всі ті фішки з курсу у себе на блозі, то та захист, яку ви йому дасте, додасть йому ще й гарне прискорення в плані просування в пошукових системах і не тільки.

І це не пусті слова.

А ті сайти, з якими я зіткнувся і приклади яких навів - мене тільки в цьому переконали.

Не, ну серйозно, а чого ви чекаєте?

Теж чекаєте поки ваш блог відвідає таку кількість вірусів?

Я за все життя не бачив такої кількості вірусів. Тим більше в одному місці!

Але вирішувати вам, хлопців.

Я просто пропоную вам ознайомитися з, можливо, одним з кращих курсів по захист сайту від вірусів.

Ви вже вирішуйте самі. Відновлювати чи сайт з бекапів або витратити пару днів на вивчення нескладних фішок.

На сьогодні у мене все, пока!

Денис, спасибі за дуже цікаву статтю (почитав і твої думки, і статтю Олександра Борисова). Сумно все це! Перевірив свій сайт на віруси - тьху, тьху, поки немає ... Але мабуть дійсно треба переходити на виділений IP та й інші способи захисту впроваджувати на практиці. Загалом, буду вивчати курс, поки не пізно ...

Для перевірки у мене є сканер, періодично перевіряю. Браузер теж перевіряє на віруси, хостинг перевіряє. Заглядаю на Сеобілдінг (зараз назва змінилася), там комплексну перевірку більшості параметрів, в тому числі і на віруси. Але це все тільки перевірки. А 100% захисту на жаль не буває.

Хочу приєднатися до Олександру Вікторовичу - 100% захисту не буває. Вчора зламали сайт клієнта, хостинг зауважив великі розсилки, хочу зазначити, що технічна підтримка правильно зреагувала і швидко, вилікувала Айболита. А то б довелося до Денису звертатися.

Денис, спасибі, нарешті усвідомила собі що таке SQL-ін'єкції, надає все досить просто. Звичайно, треба свій сайт захищати, сама про це писала кілька разів, про SQL-ін'єкції не писала, не замислювалася навіть, а й справді це небезпечно, треба напевно ознайомитися з курсом.

Ось я завжди дивуюся, навіщо люди зламують сайти, запускають віруси і всякі шпигунські програми!
Денис, спасибі за корисну статтю - багато нового для себе дізналася!

Дивне питання. Напевно щоб використовувати для себе безкоштовно чужі ресурси. Наприклад зробити розсилки з сайту, або там паролі які дізнатися для отримання прибутку. Все робиться для прибутку в кінцевому рахунку.

Комусь подобається створювати сайти, а у деяких хобі з дитинства - що-небудь зламати, зіпсувати, зашкодити ... І таких людей, на жаль. чимало. Тому і треба вивчити курс А. Борисова, в ньому, до речі, є чимало корисних речей. Я наприклад, вже приступив, і дуже радий цьому ...

Згоден, мені курс теж сподобався, вивчив весь, ряд цікавих фішок вже впровадив на своєму сайті. Сподобалися методи перевірки, спробував все і зітхнув полегшено, вірусів і зайвого немає. Але як попередили в курсі, розслаблятися не треба, 100% захисту просто не існує