Кодировщик Microsoft AntiXss, кодирующий гиперссылку полного пути

У меня странная проблема с кодировщиком Microsoft AntiXSS. Когда я щелкаю ссылку на моей странице, которая указывает на другую страницу, она обрабатывает ссылку как относительный путь к текущей странице. Страница расположена на другом сервере, но оба имеют одно и то же доменное имя, но различаются по своему поддомену.

Это сценарий:

  1. Я сейчас на этой странице https://example.com/MyApp/currentpage.aspx - на этой странице есть гиперссылка на https://subdomain.example.com/MyOtherApp/anotherpage.aspx который расположен на другом сервере.
  2. Когда я нажимаю на ссылку, он перенаправляет меня на 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 только соединения.

0 ответов

Другие вопросы по тегам