Не удается удалить имя сервера в заголовке запроса в службе приложений HTTP- Azure - PullRequest
1 голос
/ 08 апреля 2020

Я сделал необходимый файл web.config (находится в D: \ home \ site \ wwwroot), здесь также есть правило перезаписи для перенаправления всех на https

        <configuration>
        <system.web>
           <!-- <compilation debug="true" targetFramework="4.5.1" />
            <httpRuntime targetFramework="4.5.1" enableVersionHeader="false" />-->
            <httpRuntime enableVersionHeader="false" />
            <!--<customErrors mode="RemoteOnly" defaultRedirect="https://concierge.digitaldesk.accenture.com"/>-->
        </system.web>
        <system.webServer>
            <security>
<requestFiltering removeServerHeader="true"/>
</security>

На основе https://securityheaders.com/

необработанные заголовки с перенаправлением

enter image description here

необработанный заголовок Без перенаправления

enter image description here

Он неожиданно показывает имя сервера, мне нужно удалить его также.

Пожалуйста, помогите! !

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Я думаю, что ваша проблема связана с настройками "Только HTTPS" из раздела настроек TLS / SSL веб-приложения в Azure Портал. Если для «HTTPS only» установлено значение ON, первый запрос к HTTP (не HTTPS) не попадет в код вашего приложения и ваш web.config не будет применен. Microsoft напрямую отвечает 301 (+ заголовок сервера). В следующем запросе нет имени сервера, поскольку применяются правила web.config.

Попробуйте отключить «Только HTTPS» и выполните перенаправление с правилом в файле web.config или в коде приложения. Это должно решить проблему.

Чтобы доказать, что мой анализ с «HTTPS only» установленным на «ON», ищите в журналах запросы на http: если у вас настроено понимание приложения, вы можете запрашивать журналы, как это

requests 
| where url startswith "http:" 
| order by timestamp desc

Если мой анализ верен, вы не найдете там никакого запроса. Но если вы отключите «Только HTTPS», вы также увидите запрос на http

0 голосов
/ 09 апреля 2020

Я не могу воспроизвести эту проблему на моей стороне. Как перенаправление, так и непереадресация запроса будут удалены на моей стороне. Вы пропустили установку disableServerHeader для оригинального URL? И пытались ли вы очистить кеш браузера, потому что можно кэшировать перенаправление 301.

Я думаю, что вы могли бы вместо этого использовать правило для исходящих запросов, поскольку правило для исходящих сообщений IIS будет постоянно удалять значение заголовка response_server.

enter image description here

<outboundRules>
    <rule name="Remove response">
        <match serverVariable="RESPONSE_SERVER" pattern="(.*)" />
        <action type="Rewrite" />
    </rule>
</outboundRules>
...