Качественный хостинг
 Служба поддержки:
 Принимаем к оплате:
 Вход для клиентов:
Регистрация доменов
e-mail: support@profithost.ru
телефон: (4912) 99-05-26
ICQ on-line: ICQ#6662085ICQ#311504734ICQ#277833191
        
 
 
   О компании
   Гибкий хостинг
   Домены
   Регистрация
   Оплата услуг
   FAQ
   Общие вопросы
   Финансовые вопросы
   Панель управления
   Доменные вопросы
   Работа с MySQL
   Основы безопасности
   Контактная информация
 
Проверить домен?
.
 
 
Если Вы не удовлетворены услугами хостинга, возврат всех денежных средств за  хостинг в течение первого месяца пользования
FAQ / Основы безопасности
 
Часто случается так, что при разработке нового сайта или в процессе поддержки уже готового проекта веб-мастера и программисты все свое время отдают непосредственно творчеству (дизайну, продумыванию и реализации механизмов и алгоритмов), совершенно при этом забывая о такой важной вещи, как безопасность создаваемого проекта. А ведь чем больше труда вложено в сайт, чем больше сил и времени потрачено на его дизайн и программирование, чем больше средств вложено в эти процессы, тем обиднее видеть, как Ваш сайт рушится под атаками хакеров из-за банальной ошибки, допущенной при разработке.



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

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

Вопросы


Вопросы и ответы

  • Установка готовых скриптов производства третьих лиц

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

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

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

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

  • Безопасность при программировании

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

    Вот ссылки на соответствующую документацию:

  • perl security
  • Безопасное программирование на Perl

  • Приемы безопасного программирования веб-приложений на PHP

  • Безопасность при работе с СУБД

  • Нельзя никому давать пароль суперпользователя (обычно он называется 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 и хотите узнать больше по этой теме, можно прочитать следующие статьи :

  • MySQL General Security
  • How to Make MySQL Secure Against Crackers

    Стоит также понимать, что изложенные тезисы применимы не только к MySQL, но и к любой другой СУБД. Отличия могут быть в синтаксисе команд и деталях.

  • Правильные" пароли и разграничение доступа персонала

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

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

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

  • Внимательное чтение документации по всему, что Вы используете

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

  • Security updates

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

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

    Сайты по безопасности:

  • SecurityFocus
  • VOID.RU

    Рассылки:

  • Архив рассылки bugtraq
  • Подписка на bugtraq

  • Резервные копии всего проекта

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

    Сами Вы можете создавать архив проекта примерно таким методом :

    Допустим, есть каталог /home/user, содержащий следующие файлы :

    
    host# ls -la
    -rw-r--r--  103941 11 May 15:46 calc.csv
    -rw-r--r--  274    21 May 10:02 index.html
    -rw-r--r--  1865   12 May 17:18 index2.wml
    

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

    
    host# tar -zcf `date "+%Y-%m-%d-%H:%M:%S"`.tgz /home/user/
    

    Итог :

    
    host# ls -la
    -rw-r--r--  55933  30 May 13:19 2001-05-30-13-19-45.tgz
    -rw-r--r--  103941 11 May 15:46 calc.csv
    -rw-r--r--  274    21 May 10:02 index.html
    -rw-r--r--  1865   12 May 17:18 index2.wml
    

    То есть, появился файл 2001-05-30-13-19-45.tgz, который содержит сжатые архиваторами tar/gzip файлы из каталога /home/user. Как поступить дальше с архивом - решайте. Можно скачать его на свой компьютер и хранить локально.

    by Петр Диденко

 

Качественный хостинг без тарифных планов

 

Домены в любых зонах по низким ценам

 

Создание сайтов, банеров, раскрутка сайтов

 

О компании | Гибкий хостинг | Домены | FAQ | Контактная информация | Ссылки |
© 2004-2006 ООО Профит. Все права защищены