Серия лекций ASP (двадцать) Обеспечение безопасности приложений ASP
Автор:Eve Cole
Время обновления:2009-05-30 19:58:35
Никогда не недооценивайте важность правильной настройки параметров безопасности. Неправильная настройка параметров безопасности не только подвергает ваши приложения ASP ненужному вмешательству, но также лишает законных пользователей доступа к вашим файлам .asp.
Веб-серверы предоставляют различные методы защиты ваших приложений ASP от несанкционированного доступа и взлома. После прочтения информации о безопасности в этом разделе уделите немного времени и внимательно просмотрите документацию по безопасности Windows NT и веб-сервера.
Разрешения NTFS. Файлы приложений ASP можно защитить, применив разрешения доступа NTFS к отдельным файлам и каталогам. Разрешения NTFS являются основой безопасности веб-сервера, определяя различные уровни доступа к файлам и каталогам для пользователя или группы пользователей. Когда пользователь с действующей учетной записью Windows NT пытается получить доступ к файлу с ограниченными разрешениями, компьютер проверяет список управления доступом к файлу (ACL). В этой таблице определены разрешения, предоставленные различным пользователям и группам пользователей. Если у учетной записи пользователя есть разрешение на открытие файла, компьютер разрешает пользователю доступ к файлу. Например, владельцу веб-приложения на веб-сервере необходимы разрешения на изменение для просмотра, изменения и удаления файлов .asp приложения. Однако общедоступным пользователям, имеющим доступ к приложению, следует предоставлять только разрешения «Только чтение», ограничивая их просмотром, но не изменением веб-страниц приложения.
Поддержание безопасности Global.asa Чтобы полностью защитить приложение ASP, обязательно установите разрешения NTFS для файла Global.asa приложения для соответствующего пользователя или группы. Если Global.asa содержит команды, возвращающие информацию в браузер, и вы не защищаете файл Global.asa, информация будет возвращена в браузер, даже если другие файлы в приложении защищены.
ПРИМЕЧАНИЕ Обязательно примените единые разрешения NTFS к файлам приложения. Например, если вы случайно чрезмерно ограничите разрешения NTFS для файла, который должно содержать приложение, пользователи могут не иметь возможности просматривать или запускать приложение. Чтобы предотвратить такие проблемы, тщательно спланируйте, прежде чем назначать разрешения NTFS своим приложениям.
Разрешения веб-сервера. Вы можете ограничить доступ всех пользователей к просмотру, запуску и управлению вашими страницами ASP, настроив разрешения на вашем веб-сервере. В отличие от разрешений NTFS, которые позволяют контролировать доступ определенных пользователей к файлам и каталогам приложений, разрешения веб-сервера применяются ко всем пользователям и не делают различий между типами учетных записей пользователей.
Пользователи, которые будут запускать ваши приложения ASP, должны следовать этим рекомендациям при настройке разрешений веб-сервера:
Разрешите разрешения на чтение или сценарий для виртуального каталога, содержащего файл .asp.
Разрешите разрешения «чтение» и «сценарий» для виртуальных каталогов, в которых расположены файлы .asp и другие файлы, содержащие сценарии (например, файлы .htm и т. д.).
Разрешите разрешения на чтение и выполнение для виртуальных каталогов, содержащих файлы .asp и другие файлы, для запуска которых требуются разрешения на выполнение (например, файлы .exe, .dll и т. д.).
Файлы сопоставления сценариев. Сопоставление сценариев приложения гарантирует, что веб-сервер случайно не загрузит исходный код файла .asp. Например, даже если вы установили разрешения на чтение для каталога, содержащего файл .asp, ваш веб-сервер не будет возвращать исходный код файла, пока файл .asp принадлежит приложению сопоставления сценариев пользователям.
Безопасность файлов cookie
ASP использует файл cookie SessionID для отслеживания определенной информации веб-браузера во время посещения приложения или сеанса. Это означает, что считается, что HTTP-запросы с соответствующими файлами cookie исходят из одного и того же веб-браузера. Веб-серверы могут использовать файлы cookie SessionID для настройки приложений ASP с использованием информации о сеансе пользователя. Например, если ваше приложение представляет собой музыкальный интернет-магазин, который позволяет пользователям выбирать и приобретать компакт-диски, вы можете использовать SessionID для отслеживания выбора пользователя при его перемещении по приложению.
Могут ли хакеры угадать SessionID?
Чтобы компьютерные хакеры не смогли угадать файл cookie SessionID и получить доступ к переменным сеанса законного пользователя, веб-сервер присваивает каждому SessionID случайно сгенерированное число. Всякий раз, когда веб-браузер пользователя возвращает файл cookie SessionID, сервер извлекает SessionID и назначенный номер, а затем проверяет, соответствует ли он сгенерированному номеру, хранящемуся на сервере. Если два числа совпадают, пользователю будет разрешен доступ к переменной сеанса. Эффективность этого метода заключается в длине присвоенного числа (64 бита), что сводит практически к нулю возможность компьютерного хакера угадать SessionID и украсть активную сессию пользователя.
Зашифруйте важный файл cookie SessionID.
Компьютерный хакер, перехвативший файл cookie с идентификатором сеанса пользователя, может использовать этот файл cookie, чтобы выдать себя за пользователя. Если приложение ASP содержит личную информацию, номера кредитных карт или банковских счетов, компьютерный хакер с украденным файлом cookie может начать активный сеанс в приложении и получить эту информацию. Вы можете предотвратить перехват файла cookie SessionID, зашифровав канал связи между вашим веб-сервером и браузером пользователя.
Защита ограниченного содержимого ASP с помощью механизмов аутентификации. Можно потребовать, чтобы каждый пользователь, пытающийся получить доступ к ограниченному содержимому ASP, имел действительное имя пользователя и пароль учетной записи Windows NT. Всякий раз, когда пользователь пытается получить доступ к ограниченному содержимому, веб-сервер выполняет аутентификацию или проверку личности пользователя, чтобы проверить, имеет ли пользователь действительную учетную запись Windows NT.
Веб-сервер поддерживает следующие методы аутентификации:
Базовая аутентификация Запрашивает у пользователя имя пользователя и пароль.
Аутентификация запросов/ответов Windows NT зашифрованно получает идентификационную информацию пользователя из веб-браузера пользователя.
Однако веб-сервер проверяет подлинность пользователя только в том случае, если анонимный доступ запрещен или ограничен разрешениями файловой системы Windows NT.
Защита метабазы Сценарии ASP, имеющие доступ к метабазе, требуют прав администратора на компьютере, на котором работает веб-сервер. При запуске этих сценариев с удаленного компьютера необходимо подключаться через соединение с проверкой подлинности, например с использованием проверки подлинности запроса/ответа Windows NT. Вам следует создать сервер или каталог для административного файла .asp и установить для него метод аутентификации безопасности каталога на аутентификацию запросов/ответов Windows NT. В настоящее время проверка подлинности запроса/ответа Windows NT поддерживается только Microsoft Internet Explorer версии 2.0 или более поздней.
Поддерживайте безопасность приложений с помощью SSL
В качестве функции безопасности веб-сервера протокол Secure Sockets Layer (SSL) 3.0 обеспечивает безопасный виртуальный и прозрачный способ установления зашифрованных соединений с пользователями. SSL обеспечивает аутентификацию веб-контента и может надежно подтвердить личность пользователей, посещающих веб-сайты с ограниченным доступом.
С помощью SSL вы можете потребовать от пользователей, пытающихся получить доступ к ограниченным приложениям ASP, установить зашифрованное соединение с вашим сервером; это предотвращает перехват важной информации, которой обмениваются пользователи и приложения.
Обеспечение безопасности включенных файлов Если вы включаете файлы, расположенные в каталоге с поддержкой SSL, из файла .asp, расположенного в незащищенном виртуальном корневом каталоге, SSL не будет применяться к включенным файлам. Поэтому, чтобы гарантировать применение SSL, убедитесь, что как включаемый, так и включаемый файлы находятся в каталоге с поддержкой SSL.
Аутентификация клиента Очень безопасный способ контролировать доступ к вашему приложению ASP — потребовать от пользователей входа в систему с использованием аутентификации клиента. Учетные данные клиента — это цифровое удостоверение личности, которое содержит идентификационную информацию пользователя и функционирует так же, как традиционная форма идентификации, такая как паспорт или водительские права. Пользователи обычно получают квалификацию клиента от доверенной сторонней организации, которая подтверждает идентификационную информацию пользователя перед выдачей квалификационных сертификатов. (Обычно такие организации запрашивают имя, адрес, номер телефона и название организации; уровень детализации этой информации варьируется в зависимости от уровня предоставленного статуса.)
Всякий раз, когда пользователь пытается войти в приложение, требующее проверки правомочности, веб-браузер пользователя автоматически отправляет учетные данные пользователя на сервер. Если функция сопоставления квалификации Secure Sockets Layer (SSL) веб-сервера настроена правильно, сервер может проверить личность пользователя перед предоставлением доступа приложению ASP.
Сценарии ASP для обработки сертификации квалификации. Как разработчик приложений ASP, вы можете писать сценарии для проверки наличия квалификации и чтения полей квалификации. Например, вы можете получить доступ к полю имени пользователя и полю названия компании из квалификации. Active Server Pages хранит информацию о квалификации в коллекции ClientCertificate объекта Request.
Веб-сервер должен быть настроен на прием или требование квалификаций клиента, прежде чем его можно будет обработать через ASP. В противном случае коллекция ClientCertificate будет пустой.