Вопрос: Как удалить X-ORIGINAL-URL заголовок в Azure ARR?
Cloudflare блокирует перезапись нашего URL «между поддоменами» на 403 из-за заголовка X-ORIGINAL-URL (CVE-2018-14773).
Мы используем файл applicationHost.xdt и перезаписываем правила в web.config.
Правило такое:
<rule name="Rule" stopProcessing="true">
<match url="^(ab|cd|ef|gh)/(.*)" />
<conditions logicalGrouping="MatchAny">
<add matchType="Pattern" input="{HTTP_HOST}" pattern="^sub\.domain\.com$" />
</conditions>
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
<action type="Rewrite" url="https://sub.{R:1}.domain.com/{R:2}" appendQueryString="false" logRewrittenUrl="true" />
</rule>
applicationHost.xdt:
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.webServer>
<proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />
</system.webServer>
<location path="%XDT_SITENAME%" xdt:Locator="Match(path)">
<system.webServer xdt:Transform="InsertIfMissing">
<httpProtocol xdt:Transform="InsertIfMissing">
<customHeaders xdt:Transform="InsertIfMissing">
<add xdt:Transform="Remove" />
</customHeaders>
</httpProtocol>
<rewrite xdt:Transform="InsertIfMissing">
<allowedServerVariables xdt:Transform="InsertIfMissing" >
<add name="HTTP_X_ORIGINAL_HOST" xdt:Transform="InsertIfMissing" />
<add name="HTTP_HOST" xdt:Transform="InsertIfMissing" />
<add name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
<add name="HTTP_ACCEPT_ENCODING" xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" />
</allowedServerVariables>
</rewrite>
</system.webServer>
</location>
</configuration>
Журнал Cloudflare (часть):
{
"key": "rule_message",
"value": "Drupal, Wordpress - Anomaly:Header:X-Original-Url, Anomaly:Header:X-Rewrite-Url - CVE:CVE-2018-14773"
},