Опубликован: 16.10.2006 | Доступ: свободный | Студентов: 2181 / 313 | Оценка: 4.44 / 4.23 | Длительность: 26:41:00
Лекция 11:

Безопасность активного содержимого

Роботы и "пауки"

Веб-роботы, также называемые "пауками" или веб-странниками, – это программы, автоматически исследующие всемирную сеть через рекурсивное получение страниц по гиперссылкам. Робот посещает сайты посредством запросов документов с этих сайтов и создает базу данных, которая используется поисковой машиной для нахождения документов, соответствующих строке поиска. Если сайт открыт для общего доступа, пользователи должны иметь возможность поиска сайта с помощью поисковой системы. Тем не менее, следует запретить роботам доступ к страницам сайта, особенно к тем, которые содержат важную информацию, так как это может привлечь внимание хакеров. Большая часть веб-роботов содержит два механизма ограничения областей сайтов, которые они будут посещать: протокол исключений роботов Robots Exclusion Protocol и META-теги роботов, хотя некоторые роботы игнорируют обе директивы.

Протокол исключений роботов

Для указания разделов сайта, которые не должны посещаться роботом, создайте специально отформатированный файл с именем robots.txt. Разместите этот файл на верхнем уровне веб-пространства, например, по адресу http://www.ваш_домен.com/robots. Когда робот найдет этот документ, он проанализирует содержимое данного файла, устанавливающее базовую политику доступа роботов. К сожалению, робот действует по принципу "разрешено все, что не запрещено". На сайте может существовать только один файл robots.txt, поэтому не размещайте файлы robots.txt в различных папках, так как роботы никогда не будут их считывать. Если веб-разработчики создают свои собственные файлы robots.txt, нужно осуществить их слияние в один файл. Можно также использовать META-теги роботов (о которых пойдет речь в следующем разделе).

Содержимое файла robots.txt может быть таким:

User-agent: *
Disallow: /scripts/
Disallow: /includes/
Disallow: /mike/

В этом примере роботы могут посещать все части сайта, кроме трех вложенных папок: scripts, includes и mike. Регулярные выражения не поддерживаются в строках User-agent или Disallow, однако звездочка ("*") в поле User-agent имеет специальное значение – "любой робот". Следовательно, нельзя вводить в файл такие строки: Disallow: /tmp/* или Disallow: *.gif. Укажите отдельную строку Disallow для каждой папки, которую нужно исключить из списка посещаемых роботом объектов. Нельзя включать в запись и пустые строки, так как они используются для разделения нескольких записей.

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

Чтобы исключить всех роботов для всего сайта:

User-agent: *
Disallow: /

Чтобы исключить всех роботов для отдельных папок на сайте:

User-agent: *
Disallow: /scripts/
Disallow: /includes/
Disallow: /private/

Чтобы исключить одного робота:

User-agent: BadBot
Disallow: /

Чтобы разрешить определенного робота:

User-agent: WebCrawler
Disallow:

Так как в этом случае не может существовать поле "Allow" (Разрешить), то для исключения всех файлов, кроме одного, поместите эти файлы в отдельную подпапку (например, private), и перенесите один файл на уровень выше, чем данная папка, например:

User-agent: *
Disallow: /corporate/private/

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

User-agent: *
Disallow: /corporate/private.html
Disallow: /corporate/sensitive.html
Disallow: /corporate/hr.html

Файл robots.txt должен исключать все папки, кроме тех, которые действительно должны быть проиндексированы и доступны через поисковые машины интернета.

META-теги роботов

Если несколько веб-разработчиков или подразделений одновременно управляют различными разделами сайта, то обновление файла robots.txt может оказаться трудной задачей. Используйте специальные META-теги HTML роботов для обозначения того, что страница может индексироваться или анализироваться роботами, хотя не все роботы поддерживают META-теги. Microsoft Index Server поддерживает META-теги роботов и исключает содержащие их веб-страницы. Мета-теги роботов чувствительны к регистру букв и размещаются в разделе <HEAD> страница HTML, как и все остальные META-теги. Например:

<HTML>
<HEAD>
<META NAME="robots" CONTENT="noindex,nofollow">
<META NAME="description" CONTENT="Данный документ рассказывает о ….">
<TITLE>Внутренняя безопасность</TITLE>
</HEAD>
<BODY>

В содержимом META-тега роботов присутствуют директивы, разделяемые запятыми. В настоящий момент определены директивы INDEX, NOINDEX, FOLLOW и NOFOLLOW. Директива INDEX указывает, должен ли робот индексировать страницу. Директива FOLLOW указывает, должен ли робот переходить по ссылкам на странице для поиска других страниц. Директивами по умолчанию являются INDEX и FOLLOW. Значения ALL и NONE включают и выключают директивы: ALL=INDEX,FOLLOW и NONE=NOINDEX,NOFOLLOW. Чтобы разрешить роботу индексирование и анализ страницы на предмет ссылок, добавьте следующий META-тег:

<META NAME="robots" CONTENT="index,follow">

или

<META NAME="robots" CONTENT="all=index.follow">

Остальные комбинации приведены ниже:

<META NAME="robots" CONTENT="noindex,follow">
<META NAME="robots" CONTENT="index,nofollow">
<META NAME="robots" CONTENT="noindex,nofollow">

Очевидно, что не следует указывать конфликтующие или повторяющиеся директивы, например:

<META NAME="robots" CONTENT="index,noindex,nofollow,follow">

Совет. Для получения более подробной информации о роботах посетите сайт http://www.robotstxt.org/.

Сводный перечень действий по обеспечению безопасности активного содержимого

  • Создайте четкую структуру каталогов, чтобы упростить управление разрешениями на выполнение активного содержимого.
  • Убедитесь, что веб-папкам присвоены минимальные разрешения NTFS, позволяющие просматривать содержимое определенным учетным записям.
  • Свяжите активное содержимое с программой, которая будет его обрабатывать, включая файлы вставок.
  • Используйте программы контроля над исходными файлами для управления изменениями, вносимыми в активное содержимое, и удаления ненужных резервных файлов, сгенерированных редакторами.
  • Добавляйте в создаваемый код примечания об авторских правах.
  • Осуществляйте проверку вводимых пользователем данных перед их обработкой или отображением.
  • Реализуйте кодировку всего содержимого, исходящего от сторонних источников, – от баз данных и вводящих информацию пользователей.
  • Убедитесь в том, что весь код проходит процедуру проверки, состоящую из девяти пунктов.
  • Настройте и используйте на сайте фильтры ISAPI для защиты собственного кода.
  • Используйте кодировщик сценариев Script Encoder для скрытия сценариев на веб-страницах.
  • Управляйте доступом к важной информации с использованием ASP, HTTP 401 и EFS.
  • Проводите тщательную отладку всех сценариев и исполняемых файлов перед их установкой на защищаемом сервере.
  • Реализуйте перехват ошибок для всех сценариев, чтобы предотвратить утечку информации о системе через веб-браузер, но фиксировать ее в файлах журналов.
  • Подписывайте код апплетов и макросов, которые понадобятся посетителям при доступе к сайту.
  • Не используйте без надобности серверные расширения FrontPage Server Extensions.
  • Настройте переменные FPSE для повышения уровня безопасности по сравнению с конфигурацией по умолчанию.
  • Используйте протокол исключения роботов Robot Exclusion Protocol или META-теги роботов для запрета индексирования роботами важного содержимого.