Как защитить свой сайт от взлома?

Реклама
Профессионал

Сегодня Интернет завоевывает все большую и большую популярность, и слово «сайт» прочно вошло в наш лексикон.

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

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

Реклама

Речь идет о безопасности, причем не о физической безопасности компьютера, на котором хранится ваш сайт, о которой, конечно, тоже стоит позаботиться, а о безопасности в сети Интернет.

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

Реклама

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

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

Работа с данными, хранящимися в базе данных вашего сайта, осуществляется посредством структурного языка запросов SQL. SQL-инъекция — техника внедрения в исходный SQL-запрос определенного кода, не нарушающего структуры самого запроса, с целью получения доступа к данным, содержащимся в БД.

Реклама

Возможность внедрения SQL-инъекции возникает вследствие недостаточной проверки принятых от пользователя значений. Внедрение SQL-инъекции, в зависимости от типа используемой СУБД и условий внедрения, может дать возможность атакующему выполнить произвольный запрос к базе данных — например, прочитать содержимое любых таблиц, удалить, изменить или добавить данные, получить возможность чтения и/или записи локальных файлов и выполнения произвольных команд на атакуемом сервере.

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

Реклама

Итак, перейдем непосредственно к методам защиты вашего сайта от SQL-инъекции:

1. Не доверяйте данным, которые вводит пользователь в форму на вашем сайте. Все эти данные необходимо проверять на наличие в них вредоносного кода. Для этого, во-первых, стоит ограничивать длину полей там, где это возможно. Например, для строки «Имя» вполне хватит 10 символов.

Обрабатывайте специальными функциями все данные, получаемые от пользователя. При использовании PHP здесь подойдут функции mysql_real_escape_string () (экранирует слешами запрещенные символы типа ‘, «), Htmlspecialchars () (преобразует запрещенные html дескрипторы). Также здесь можно проверять тип вводимых значений, например, с помощью intval () для численных значений.

Реклама

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

3. Принцип внедрения SQL-инъекции заключается в том, что взломщик угадывает структуру ваших запросов к БД, подбирает возможные имена таблиц и столбцов этой базы и на основе полученной информации извлекает данные. Так, например, пытаясь получить доступ к таблице паролей вашей базы данных, он будет подбирать имена типа pass, password, users и т. д. Поэтому, вряд ли ему удастся извлечь из данной таблицы информацию, если вы назовете ее «aslfjsaf». Однако данный метод чересчур радикальный, так как затруднит работу с БД лично вам — из-за неинформативности имен.

Реклама

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

Главное, что вам необходимо понять, — это важность вопросов безопасности вашего сайта, о этом ни в коем случае нельзя забывать. Доверяйте защиту вашего сайта профессионалам и спите спокойно!

Реклама