Опубликован: 16.10.2006 | Уровень: специалист | Доступ: платный
Лекция 11:

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

Дополнительные методы обеспечения безопасности веб-содержимого

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

Обеспечение безопасности страниц при помощи ASP

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

<HTML>
<HEAD>
<TITLE>Customer Log On</TITLE>
</HEAD>
<BODY>

<FORM METHOD="POST" ACTION="../scripts/logon.asp">
	<TABLE WIDTH="100%">
		<TR>
		  <TD>User name:</TD>
			<TD><INPUT TYPE="text" NAME="Username" SIZE="30" 						
			      MAXLENGTH="30"></TD>

		</TR>
		<TR>
		  <TD>Password:</TD>
			<TD><INPUT TYPE="password" NAME="Password" SIZE="16" MAXLENGTH="16"></TD>
		<TR>
		  <TD COLSPAN="2" align="CENTER"><INPUT TYPE ="submit"
						VALUE="Log On"></TD>
		</TR>
	</TABLE>
</FORM>

</BODY>
</HTML>

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

If NoMatch = TRUE Then
	Session("Authorized") = FALSE
strURL = "registrationpage.asp"
Else
	Session("Authorized") = TRUE
	strURL = "specialoffers.asp"
End If
Server.Transfer strURL

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

<%@ LANGUAGE="VBScript" %>
    <% Option Explicit %>
<%
If Session("Authorized") = FALSE Then
	Response.Redirect "accessdenied.asp"
End If
%>

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

Важно. Всегда используйте метод POST для отправки секретной информации из формы. При использовании метода GET введенные в форме данные будут отображаться в адресе URL, который видит каждый пользователь.

Файловая система с шифрованием

Файловая система с шифрованием (EFS) обеспечивает внутреннее шифрование файлов, используемое файловой системой Windows 2000 и позволяющее шифровать файлы и папки в томах NTFS. EFS включается для документов в Windows 2000 посредством дополнительного файлового атрибута. Для шифрования содержимого папки перейдите к папке в Windows Explorer (Проводник Windows), щелкните правой кнопкой мыши на папке и выберите команду Properties (Свойства), чтобы открыть соответствующее окно (см. рис. 11.9).

Обеспечьте шифрование содержимого папки, включив соответствующую опцию в окне Proрerties (Свойства)

Рис. 11.9. Обеспечьте шифрование содержимого папки, включив соответствующую опцию в окне Proрerties (Свойства)

Нажмите на кнопку Advanced (Дополнительно) и отметьте опцию Encrypt Contents To Secure Data (Шифровать содержимое для защиты данных) (см. рис. 11.10). Нажмите на OK, чтобы вернуться в Windows Explorer.

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

Диалоговое окно Advanced Atributes (Дополнительные атрибуты) позволяет включить шифрование файла или папки

Рис. 11.10. Диалоговое окно Advanced Atributes (Дополнительные атрибуты) позволяет включить шифрование файла или папки

Предупреждение. EFS не сможет шифровать файлы с атрибутом System (Системный). Не пытайтесь преодолеть эту меру защиты для шифрования файлов в системной папке. Секретные ключи, необходимые для расшифровки, недоступны при загрузке системы, поэтому если системные файлы будут зашифрованы, система окажется в нерабочем состоянии.

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

Важно. При использовании EFS следует шифровать папки, а не отдельные файлы, так как приложения создают временные файлы в тех же папках, где находятся исходные, особенно в процессе редактирования. При использовании шифрования на уровне папки временные файлы не будут сохраняться в виде открытого текста. По этой же причине следует применить шифрование к папке Temp, расположенной по адресу %SystemRoot%\TEMP.

Антон Ворожейкин
Антон Ворожейкин
Россия, с. Новоселье
Дмитрий Клочков
Дмитрий Клочков
Россия, Рубцовск