В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

Браузер не поддерживается

Чтобы использовать веб-сайт, обновите браузер.

Обновите браузер до последней версии Internet Explorer

Профилактика ошибок в процедуре приведения имен к каноническому виду в приложениях ASP.NET

Введение
В статье описано, каким образом можно усовершенствовать приложения ASP.NET, чтобы избежать распространенных проблем при приведении имен к каноническому виду.
Дополнительная информация

Что такое приведение имен к каноническому виду?

Приведение к каноническому виду — это процесс, при котором различным формам имени сопоставляется одно стандартное имя. Такое стандартное имя называется каноническим именем. Например, на компьютере несколько имен c:\dir\test.dat, test.dat и ..\..\test.dat могут соответствовать одному и тому же файлу. В данном случае всем им будет сопоставлено каноническое имя c:\dir\test.dat.

Когда веб-узел получает адрес URL, сервер сопоставляет полученный запрос с путем к файлу, чтобы выдать нужный ответ. Чтобы избежать обслуживания недопустимых запросов или обращения к недопустимым файлам, перед выполнением сопоставления осуществляется анализ указанного адреса и приведение имен к каноническому виду. Дополнительные сведения о приведении имен к каноническому виду см. на веб-узле корпорации Майкрософт по адресу: Корпорация Майкрософт рекомендует пользоваться приведенными ниже советами, чтобы защитить приложения от ошибок.

Защита веб-приложений от распространенных ошибок, связанных с приведением к каноническому виду

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

Пример кода

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

Пример кода файла Global.asax (Visual Basic .NET)

<script language="vb" runat="server">Sub Application_BeginRequest(Sender as Object, E as EventArgs)    If (Request.Path.IndexOf(chr(92)) >= 0 OR _        System.IO.Path.GetFullPath(Request.PhysicalPath) <> Request.PhysicalPath) then        Throw New HttpException(404, "Not Found")    End IfEnd Sub</script>

Пример кода файла Global.asax (C#)

<script language="C#" runat="server">void Application_BeginRequest(object source, EventArgs e) {    if (Request.Path.IndexOf('\\') >= 0 ||        System.IO.Path.GetFullPath(Request.PhysicalPath) != Request.PhysicalPath) {        throw new HttpException(404, "not found");    }}</script>

Заявление об отказе от ответственности

Информация, содержащаяся в базе знаний Майкрософт, распространяется «как есть». Корпорация Майкрософт не предоставляет каких-либо гарантий, явных или подразумеваемых, включая любые гарантии товарности или пригодности для использования в каких-либо целях. Ни при каких обстоятельствах корпорация Майкрософт и ее поставщики не несут ответственности за возможный ущерб, включая косвенный, случайный, прямой, непрямой и специальный ущерб, а также упущенную выгоду, даже если корпорация Майкрософт или ее поставщики заранее были извещены о возможности такого ущерба. Если действующее законодательство не допускает отказа от ответственности за косвенный или случайный ущерб, то эти ограничения к вам не относятся.
Свойства

Номер статьи: 887459 — последний просмотр: 12/03/2007 18:52:51 — редакция: 2.5

  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
  • kbsecurity kbtshoot KB887459
Отзывы и предложения