Все о хостинге
Все о хостинге, как выбрать хостинг,
полезные статьи и советы.
 
 
Что такое выделенный IP адрес и зачем он нужен на хостинге... далее
Краткий обзор технологий FTP SSH CGI SSI... далее
Введение в управление базами данных MySQL... далее
Что такое SSL и зачем он нужен.... далее
Что такое HTML... далее
Как анализировать логи apache и получать из них необходимые данные.. далее
Меню :


Статьи :

Нельзя никому давать пароль суперпользователя (обычно он называется root)! Не используйте это имя для обращения к базе из скриптов, которые обеспечивают функционирование непосредственно веб-сервера. Да, root по умолчанию имеет доступ ко всем данным и это очень удобно, но это может и погубить всю Вашу работу, если будет украден его пароль или получен доступ под правами root с использованием "дырки" в каком-либо из скриптов. Заведите дополнительного пользователя, наделите его необходимыми правами (как это сделать описано тут) и пользуйтесь этим аккаунтом для обращения к базе там, где реально не требуются права суперпользователя.

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

update mysql.user set Password=password('your_pass') where user='web';
В данном случае 'your_pass' является паролем, который будет зашифрован, а 'web' - имя пользователя, которому будет установлен такой пароль.

Дополнительные рекомендации по генерации паролей можно прочитать в соответствующем разделе этой статьи.
Никогда не доверяйте данным, которые вводят пользователи на веб-сервере. Проверяйте строки, которые Ваши скрипты получают из веб-форм. Например, в форме есть поле, в которое нужно ввести количество заказываемого в Вашем интернет-магазине товара. Вы предполагаете, что пользователь введет туда число. А на самом деле туда может быть введено не "5", что-то типа "5; drop database mysql". Конечно, это уж слишком трагичный пример, но и его вполне можно использовать, если Ваш скрипт производит соединение к базе под пользователем root. Менее "опасный" пример - select * from passwords - если у Вас есть, допустим, такая табличка с паролями. Проверяйте все данные, которые приходят с веба. Помещать в MySQL непроверенные данные очень опасно.

Иногда очень полезным (особенно для начинающих пользователей и разработчиков) является сделать веб-интерфейс для администрирования MySQL. Если Вы воспользовались утилитами типа phpMyAdmin, не забудьте запаролировать доступ к такому интерфейсу. Будет очень неприятно, если такой веб-интерфейс найдут хакеры и просто сделают drop database, а таких случаев было очень много. Это, кстати, является одной из наиболее частых ошибок пользователей при работе с MySQL - Обратите особое внимание. Вообще, делая какой-то административный интерфейс, не надейтесь, что никто не найдет URL вида http://www.domain.ru/myadminweb. Найдут. Лучше поставьте на доступ к такому интерфейсу пароль. Это вполне можно сделать средствами веб-сервера apache. Стоит также понимать, что изложенные тезисы применимы не только к MySQL, но и к любой другой СУБД. Отличия могут быть в синтаксисе команд и деталях.

"Правильные" пароли и разграничение доступа персонала
Не придумывайте слишком простых паролей. Не делайте паролей, состоящих из простых слов. Существуют огромные словари, которые могут быть использованы хакером при подборе украденного шифрованного пароля или при подборе пароля в online-режиме. Например, пароль 'application' гораздо менее устойчив к перебору, чем, скажем, пароль 'hjsdg123'. Стоит делать действительно сложные пароли. Например, 'J3g45HrrT', 'Kfgd45h345' или 'K4j5uff34'. Чем более сложным кажется такой пароль, тем лучше. Если на Вашем сайте предусмотрен административный интерфейс для сотрудников компании или просто команды администраторов сайта, обратите внимание на разграничение прав доступа к информации. Делайте доступной для конкретного пользователя только ту информацию, с которой он реально должен работать. Если, например, человек отвечает за раздел "Книги" Вашего интернет-магазина, не стоит без веских на то причин давать ему управлять и разделом "Видеокассеты".
Это называется принципом минимальных прав, когда рядовым сотрудникам выдаются только те права, которые им реально необходимы. Да, конечно, есть администраторы, которые получают большие или даже все возможные права, но для рядовых сотрудников этого делать не стоит. Если Вы будете придерживаться принципа минимальных прав, при краже пароля пользователя ущерб, который может быть нанесен, ограничится данными только одного раздела, а к другим частям административного интерфейса Вашего проекта доступ злоумышленник получить не сможет.

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

Следить за security updates
Современный хостинг является довольно сложной технологией, состоящей из десятков или даже сотен программных продуктов, которые обмениваются друг с другом данными, работают в одном адресном пространстве, и следить за тем, чтобы все версии программ регулярно обновлялись, не содержали security ошибок и "дырок", должны специалисты хостинг-провайдера. Как правило, провайдеры успевают обновлять используемое ПО, так что Вам остается следить за своими программами.
Существуют списки рассылки, посвященные безопасности, на которые имеет смысл подписаться. Также следует периодически посещать сайты соответствующей тематики и просматривать там анонсы найденных уязвимостей. Да, зачастую то, что Вы увидите, не будет Вам полезно. Однако замеченное однажды скромное сообщение о "дырке" в используемой Вами, например, веб-конференции позволит сохранить много нервов.


Далее
Новости :
Горячие статьи:
Основы безопасности для веб-разработчиков

Полезно знать :