Поделиться через


Всегда разрешенные URL-адреса <alwaysAllowedUrls>

Общие сведения

Элемент <alwaysAllowedUrls> содержит коллекцию элементов, указывающих <add> URL-адреса, которые будут разрешены для фильтрации запросов, которые переопределяют значения в <denyUrlSequences> коллекции.

Совместимость

Версия Примечания
IIS 10.0 Элемент <alwaysAllowedUrls> не был изменен в IIS 10.0.
IIS 8,5 Элемент <alwaysAllowedUrls> не был изменен в IIS 8.5.
IIS 8,0 Элемент <alwaysAllowedUrls> не был изменен в IIS 8.0.
IIS 7,5 Элемент <alwaysAllowedUrls> элемента поставляется <requestFiltering> как компонент IIS 7.5.
IIS 7.0 Элемент <alwaysAllowedUrls><requestFiltering> элемента был представлен в виде обновления для IIS 7.0, доступного в статье базы знаний Майкрософт 957508 (https://support.microsoft.com/kb/957508).
IIS 6,0 Элемент <alwaysAllowedUrls> примерно аналогичен разделу [AlwaysAllowedUrls] , добавленному в URLScan 3.0.

Настройка

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

Windows Server 2012 или Windows Server 2012 R2

  1. На панели задач щелкните Диспетчер сервера.
  2. В диспетчер сервера откройте меню Управление и выберите пункт Добавить роли и компоненты.
  3. В мастере добавления ролей и компонентов нажмите кнопку Далее. Выберите тип установки и нажмите кнопку Далее. Выберите целевой сервер и нажмите кнопку Далее.
  4. На странице Роли сервера разверните узел Веб-сервер (IIS),веб-сервер, безопасность, а затем выберите Фильтрация запросов. Щелкните Далее.
    Снимок экрана: фильтрация запросов, выбранная в интерфейсе Windows Server 2012. .
  5. На странице Выбор компонентов нажмите кнопку Далее.
  6. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  7. На странице Результаты нажмите кнопку Закрыть.

Windows 8 или Windows 8.1

  1. На начальном экране переместите указатель в левый нижний угол, щелкните правой кнопкой мыши кнопку Пуск и выберите панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узлы Службы IIS, Веб-службы, Безопасность, а затем выберите Фильтрация запросов.
    Снимок экрана: фильтрация запросов, выбранная в интерфейсе Windows 8.
  4. Нажмите кнопку ОК.
  5. Щелкните Закрыть.

Windows Server 2008 или Windows Server 2008 R2

  1. На панели задач нажмите кнопку Пуск, выберите Администрирование, а затем диспетчер сервера.
  2. В области иерархии диспетчер сервера разверните узел Роли и выберите Веб-сервер (IIS).
  3. На панели Веб-сервер (IIS) прокрутите страницу до раздела Службы ролей и щелкните Добавить службы ролей.
  4. На странице Выбор служб ролеймастера добавления служб ролей выберите Фильтрация запросов и нажмите кнопку Далее.
    Снимок экрана: фильтрация запросов, выбранная в интерфейсе Windows Server 2008.
  5. На странице Подтверждение выбранных элементов для установки нажмите кнопку Установить.
  6. На странице Результаты нажмите кнопку Закрыть.

Windows Vista или Windows 7

  1. На панели задач нажмите кнопку Пуск, а затем панель управления.
  2. В панель управления выберите Программы и компоненты, а затем — Включить или отключить компоненты Windows.
  3. Разверните узел Службы IIS, затем Службы Интернета, а затем — Безопасность.
  4. Выберите Фильтрация запросов и нажмите кнопку ОК.
    Снимок экрана: фильтрация запросов, выбранная в интерфейсе Windows Vista или Windows 7.

Инструкции

Как всегда разрешать URL-адрес

  1. Откройте диспетчер служб IIS:

    • Если вы используете Windows Server 2012 или Windows Server 2012 R2:

      • На панели задач щелкните диспетчер сервера, выберите Сервис, а затем диспетчер служб IIS.
    • Если вы используете Windows 8 или Windows 8.1:

      • Удерживая нажатой клавишу Windows, нажмите букву X и щелкните панель управления.
      • Щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
    • Если вы используете Windows Server 2008 или Windows Server 2008 R2:

      • На панели задач нажмите кнопку Пуск, наведите указатель на пункт Администрирование, а затем выберите Пункт Диспетчер служб IIS.
    • Если вы используете Windows Vista или Windows 7:

      • На панели задач нажмите кнопку Пуск, а затем панель управления.
      • Дважды щелкните Администрирование, а затем дважды щелкните Диспетчер служб IIS.
  2. В области Подключения перейдите к подключению, сайту, приложению или каталогу, для которого требуется изменить параметры фильтрации запросов.

  3. На панели Главная дважды щелкните Фильтрация запросов.

  4. В области Фильтрация запросов перейдите на вкладку URL-адрес , а затем щелкните Разрешить URL-адрес... в области Действия .

  5. В диалоговом окне Разрешить URL-адрес введите URL-адрес, который вы хотите разрешить, и нажмите кнопку ОК.

Конфигурация

Элемент <alwaysAllowedUrls><requestFiltering> элемента настраивается на уровне сайта, приложения или каталога.

Атрибуты

Отсутствует.

Дочерние элементы

Элемент Описание
add Необязательный элемент.

Добавляет URL-адрес в коллекцию URL-адресов, которые всегда разрешают фильтрацию запросов.
clear Необязательный элемент.

Очищает коллекцию URL-адресов, которые всегда разрешают фильтрацию запросов.
remove Необязательный элемент.

Удаляет URL-адрес из коллекции URL-адресов, которые всегда разрешают фильтрацию запросов.

Образец конфигурации

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

<system.webServer>
   <security>
      <requestFiltering>
         <denyUrlSequences>
            <add sequence="bad" />
            <add sequence="sequence" />
         </denyUrlSequences>
         <alwaysAllowedUrls>
            <add url="/bad_sequence.txt" />
         </alwaysAllowedUrls>
      </requestFiltering>
   </security>
</system.webServer>

Пример кода

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

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"alwaysAllowedUrls.[url='/_allowed_url.aspx']"

PowerShell

$alwaysAllowedUrls = Get-IISConfigSection -CommitPath 'Default Web Site' -SectionPath 'system.webServer/security/requestFiltering' | Get-IISConfigCollection -CollectionName 'alwaysAllowedUrls'
New-IISConfigCollectionElement -ConfigCollection $alwaysAllowedUrls -ConfigAttribute @{ 'url' = '/_allowed_url.aspx' }

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");
         ConfigurationSection requestFilteringSection = config.GetSection("system.webServer/security/requestFiltering");
         ConfigurationElementCollection alwaysAllowedUrlsCollection = requestFilteringSection.GetCollection("alwaysAllowedUrls");

         ConfigurationElement addElement = alwaysAllowedUrlsCollection.CreateElement("add");
         addElement["url"] = @"/allowed_url.aspx";
         alwaysAllowedUrlsCollection.Add(addElement);

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample
   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")
      Dim requestFilteringSection As ConfigurationSection = config.GetSection("system.webServer/security/requestFiltering")

      Dim alwaysAllowedUrlsCollection As ConfigurationElementCollection = requestFilteringSection.GetCollection("alwaysAllowedUrls")
      Dim addElement As ConfigurationElement = alwaysAllowedUrlsCollection.CreateElement("add")
      addElement("url") = "/allowed_url.aspx"
      alwaysAllowedUrlsCollection.Add(addElement)

      serverManager.CommitChanges()
   End Sub
End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";
var requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site");

var alwaysAllowedUrlsCollection = requestFilteringSection.ChildElements.Item("alwaysAllowedUrls").Collection;
var addElement = alwaysAllowedUrlsCollection.CreateNewElement("add");
addElement.Properties.Item("url").Value = "/allowed_url.aspx";
alwaysAllowedUrlsCollection.AddElement(addElement);

adminManager.CommitChanges();

VBScript

Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"
Set requestFilteringSection = adminManager.GetAdminSection("system.webServer/security/requestFiltering", "MACHINE/WEBROOT/APPHOST/Default Web Site")

Set alwaysAllowedUrlsCollection = requestFilteringSection.ChildElements.Item("alwaysAllowedUrls").Collection
Set addElement = alwaysAllowedUrlsCollection.CreateNewElement("add")
addElement.Properties.Item("url").Value = "/allowed_url.aspx"
alwaysAllowedUrlsCollection.AddElement(addElement)

adminManager.CommitChanges()