sitecore — разрешить доступ к sitemap.xml, запретив другие xml-файлы

В нашем проекте sitecore 6.6.0 (версия 130404) у нас есть файл sitemap.xml в корневой папке. Однако доступ к этому файлу из браузера невозможен из-за конфигурации в файле web.config.

<add path="*.xml" verb="*" type="System.Web.HttpForbiddenHandler" name="xml (integrated)" preCondition="integratedMode"/>

Эта конфигурация была добавлена ​​в соответствии с инструкциями в руководстве по усилению безопасности sitecore.

Если мы удалим эту конфигурацию, пользователь сможет получить доступ к любому файлу .xml внутри папки sitecore. Как мы можем разрешить доступ только к файлу sitemap.xml и запретить доступ к другим файлам xml на веб-сайте?

(Мы работаем в интегрированном режиме IIS7)


person ravinsp    schedule 28.08.2013    source источник


Ответы (2)


Оставьте глобальный запрет .xml как есть и добавьте еще одно правило в раздел <handlers> со следующим правилом:

<add path="sitemap.xml" verb="GET" type="System.Web.StaticFileHandler" name="xml allow" />
<add path="*.xml" verb="*" type="System.Web.HttpForbiddenHandler" name="xml (integrated)" preCondition="integratedMode" />

При этом будет разрешен только файл sitemap.xml, а все остальные файлы .xml будут запрещены.

Не рекомендуется удалять глобальный запрет для файла .xml, поскольку, например, это приведет к удалению защиты файла license.xml.

person Martijn van der Put    schedule 28.08.2013
comment
Прекрасно работает! В качестве дополнения вы также захотите включить вышеуказанное в раздел «httpHandlers». - person Jay S; 28.08.2013

Кроме того, если вы настраиваете более одного исключения, не забудьте изменить атрибут «имя» — они должны быть уникальными:

...name="xml разрешить" />

person Sasha    schedule 19.04.2014