Кодировщик Microsoft AntiXss, кодирующий гиперссылку полного пути
У меня странная проблема с кодировщиком Microsoft AntiXSS. Когда я щелкаю ссылку на моей странице, которая указывает на другую страницу, она обрабатывает ссылку как относительный путь к текущей странице. Страница расположена на другом сервере, но оба имеют одно и то же доменное имя, но различаются по своему поддомену.
Это сценарий:
- Я сейчас на этой странице
https://example.com/MyApp/currentpage.aspx
- на этой странице есть гиперссылка наhttps://subdomain.example.com/MyOtherApp/anotherpage.aspx
который расположен на другом сервере. - Когда я нажимаю на ссылку, он перенаправляет меня на
https://example.com/MyApp/https://subdomain.example.com/MyOtherApp/anotherpage.aspx
вместоhttps://subdomain.example.com/MyOtherApp/anotherpage.aspx
непосредственно.
У меня есть это в моем web.config
<configuration>
<system.web>
.
.
.
<httpRuntime enableVersionHeader="false" encoderType="System.Web.Security.AntiXss.AntiXssEncoder,System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
В DOM я вижу, что AntiXSS закодировал href="https://subdomain.example.com/MyOtherApp/Anotherpage.aspx"
в href="https%3A%2F%2Fsubdomain.example.com%2FMyOtherApp%2FAnotherpage.aspx
Это настройка сервера.
- example.com настроен на сервере PUBLIC_WEBFARM, который находится в NETWORK_DOMAIN
- subdomain.example.com настроен на сервере COMMERCE_WEBFARM, который расположен в SUB_NETWORK_DOMAIN
- по соображениям безопасности оба сервера находятся в разных сетевых доменах.
Если я уберу AntiXss encoderType в моем файле web.config, ссылки будут работать, но входные данные моего текстового поля не будут закодированы.
НОТА:
Оба сайта принимают https
только соединения.