SQL-инъекции: как взломать сайт и как от этого защититься?

sql инъекции Блоговедение
Всем привет, сегодня будет не обычный пост. На самом деле я не фанат этих SQL инъекций и прочего шлака в плане заражения сайтов вирусами. Но тем не менее, проблема сегодня действительно актуальна. Так вот, в этой статье я постараюсь рассказать немного о том как ломают сайты, расскажу о том как я лечил сайты клиента а также сделаю интересное предложение каждому читателю!

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

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

Так вот, в этой статье я постараюсь рассказать немного о том как ломают сайты, расскажу о том как я лечил сайты клиента а также сделаю интересное предложение каждому читателю!

В Интернете 90% сайтов используют базы данных. Базы данных помогают структурировать информацию, которая хранится на сайте. В ней хранятся имена, пароли, адреса электронной почты, переписки, информация о клиентах сайта. Гарантировать 100%-ную безопасность такой системы нельзя, никто не застрахован от хакерских атак.

SQL-инъекции – способ взломать сайт, а точнее его базу данных.

Что такое SQL?

Прежде чем перейти к описанию процесса взлома с помощью SQL-инъекций, сначала разберемся, что собой представляет SQL. SQL – язык программирования, который работает с базами данных. С помощью этого языка информация в базу добавляется и удаляется. Чтение, редактирование и остальные действия происходят с помощью SQL.

как ломают сайт
Так что SQL – это набор команд, которые понимает база данных. Эти команды называются запросами. Когда пользователь регистрируется на сайте, этот язык программирования говорит базе данных запомнить введенные логин и пароль, так же он говорит их достать из базы данных, когда уже зарегистрированный пользователь авторизуется.

Авторизация на сайте – это способ передать информацию в базу данных. Еще один способ – с помощью адресной строки, в которую вы пишите адрес сайта, на который переходите. Например, введите в поиске Яндекса фразу «SQL-инъекция» и в адресной строке увидите следующую строчку: «https://yandex.ua/search/?text=sql%20%инъекция &lr=142». Эта строчка передалась на сервер Яндекса. Как вы видите, в ней содержится информация поиска, а конкретно – «text=sql%20%инъекция &lr=142». Так вот, редактируя адресную строку вручную, вы можете отправлять на сайт информацию. В том числе и запросы SQL.

Что такое SOL-инъекция?

Говоря простым языком – это атаки на базу данных. Эта атака заставляет код, который написал программист, работать не так как планировалось.

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

Читайте также:  Как писать интересные статьи по мнению in4wp.ru или Основные правила написания статей в блогосфере

Так вот записка из примера – это SQL-запрос, который папа отправил маме, а хитрый сынок – хакер, который умеет менять запросы, потому что знает, как они работают.

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

как работают sql инъекции

Как работают SQL-инъекции

Стоит сказать, что от таких атак есть защита, и о ней речь пойдет позже. Так вот первым делом, перед тем как взломать сайт нужно определить, можно ли это сделать. Определяется это с помощью некоторых SQL-запросов, которые отправляются на сайт. Так вот если такие запросы не дают результатов, то сайт защищен и SQL-инъекции бесполезны. Но половина сайтов в Интернете не используют никакой защиты.

Если отправленные запросы дали знать что защиты на сайте нет, то можно смело взламывать его. Как уже говорилось в предыдущем разделе, SQL-инъекции делаются с помощью отправки команд вместо данных, которые ждет сайт. Команды могут быть разные. И работа этих команд зависит от степени защиты сайта.

Например, вы можете читать страницы, доступные только для владельцев сайта, перезаписывать данные, удалять их и редактировать. А вот к каким данным можно получить доступ с помощью SQL-инъекций:

  • Логины и пароли
  • Информация о клиентах
  • Товары интернет магазинов
  • Заказы на сайтах
  • Переписки
  • Скрытые страницы сайта
  • Защита от SQL-инъекций

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

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

Читайте также:  Результаты крутого статейного конкурса

Еще один способ защиты – усечение информации. Пусть сайт ждет от пользователя ввод возраста. Обычно возраст – это двухзначное число. Так вот если от пользователя придет двадцать символов, то для запроса возьмем только первые два, а не всю строку.

Также используются алгоритмы подсчета ключевых слов. Ключевые слова – команды, которые понимает база данных. Так вот если перед тем как пользователь отправил данные таких слов было 3, а после того как данные пришли, их стало 5, то это SQL-инъекция, и выполнять ее не следует.

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

как я лечил сайт от вирусов

Как я лечил сайты клиента

А теперь немного практики. Вы уже знаете, что я оказываю услуг всем желающим по чистке сайтов от всякой вирусни, в т.ч. и от SQL инъекций. Об этом я писал вот в этой статье.

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

Но то что я увидел потом — меня просто поразило. Я до сих пор в шоке и не могу отойти.

Вот результаты сканирования и лечения первого сайта:

результаты лечения сайта
Я просто в шоке был, когда увидел такие цифры.

Это результат автоматического сканирования и удаления. Я не фанат автоматических скриптов, потому что порой они удаляют нужные файлы.

В этом случае так и произошло, после «лечения» скриптами — сайт не запускался. Просто потому что были заражены ВСЕ js-скрипты.

Вот результат сканирования и лечения второго сайта:

Читайте также:  Кому не стоит заниматься созданием собственного интернет проекта?

sql2
Я уже даже порадовался за то что количество вирусни в два раза меньше.

Но тем не менее, результат тот же.

Печалит меня это не по детски.

Вот и как мне работать в таких условиях? Скажите мне на милость?

Моё предложение читателю

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

Тем более я поражаюсь блоггерам, которые должны лелеять свой блог, но не делают этого.

Согласитесь, что блог — это ваш актив, которые должен приносить плоды. Зачем же его губить так?

[tip]Я помню, еще подумал:
«Вот был бы список правил, которые надо выполнять чтобы не заражаться вирусами, некий чек лист бы достать где-нибудь».[/tip]

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

Нашел я его у многим известного блоггера — Александра Борисова.

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

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

И это не пустые слова.

А те сайты, с которыми я столкнулся и примеры которых привел — меня только в этом убедили!!!

Не, ну серьезно, а чего вы ждете?

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

Я за всю жизнь не видел такого количества вирусов. Тем более в одном месте!

Но решать вам, ребят.

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

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

На сегодня у меня всё, пока!

[bye]

Оцените статью
Добавить комментарий для Александр Викторович Отменить ответ

  1. Александр Викторович

    Вот об этом способе взлома я не знал. Но у меня нет регистрации пользователей на блоге, наверное и нет этой лазейки. Есть правда данные комментаторов, оставленные в подписи.
    Защита от DDOS атак установлена хостингом, хорошая штука, роботы ее не проходят. Хороший плагин защиты тоже установлен.
    Когда был сайт партнерского ИМ, на нем кстати тоже не было регистрации, там данные вводились только при оформлении заказа. Проверял его программой Айболита — проблем не обнаружено.

    Ответить
  2. Сергей Оксак

    Денис,спасибо за очень интересную статью (почитал и твои мысли, и статью Александра Борисова). Грустно все это! Проверил свой сайт на вирусы — тьфу,тьфу,пока нет… Но видимо действительно надо переходить на выделенный IP да и другие способы защиты внедрять на практике. В общем, буду изучать курс, пока не поздно…

    Ответить
    1. Александр Викторович

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

      Ответить
      1. Надежда

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

        Ответить
  3. Надежда

    Денис, спасибо, наконец уяснила себе что такое SQL-инъекции, оказывает все достаточно просто. Конечно, надо свой сайт защищать, сама об этом писала несколько раз, про SQL-инъекции не писала, не задумывалась даже, а ведь действительно это опасно, надо наверное ознакомиться с курсом.

    Ответить
  4. Юлия

    Вот я всегда удивляюсь, зачем люди взламывают сайты, запускают вирусы и всякие шпионские программы!
    Денис, спасибо за полезную статью — много нового для себя узнала!

    Ответить
    1. Надежда

      Странный вопрос. Наверное чтобы использовать для себя бесплатно чужие ресурсы. Например сделать рассылки с сайта, или там пароли какие узнать для извлечения прибыли. Все делается для прибыли в конечном счете.

      Ответить
    2. Сергей Оксак

      Кому-то нравится создавать сайты, а у некоторых хобби с детства — что-нибудь сломать, испортить, навредить… И таких людей, к сожалению , немало. Поэтому и надо изучить курс А. Борисова, в нем, кстати, есть немало полезных вещей. Я например, уже приступил, и очень рад этому…

      Ответить
  5. Нина

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

    Ответить
    1. Сергей Оксак

      Согласен, мне курс тоже понравился, изучил весь, ряд интересных фишек уже внедрил на своем сайте. Понравились методы проверки, попробовал все и вздохнул облегченно, вирусов и лишнего нет. Но как предупредили в курсе, расслабляться не надо, 100% защиты просто не существует

      Ответить
  6. Александр

    Однако, полезная статья

    Ответить