Перезаписать контроль доступа, разрешить источник для запроса Azure CDN с модулем перезаписи URL - PullRequest
0 голосов
/ 12 января 2019

У меня есть ситуация, когда example.com имеет несколько поддоменов, использующих один и тот же файл CSS, которые, в свою очередь, используют один и тот же файл шрифтов, встроенный в него. Веб-шрифт продолжает получать междоменные ошибки cors в «Новом пути» ниже. «Старый путь» работал нормально, так как CDN устанавливает источник, если * найден из исходного запроса на запрос CDN со второй попытки.

Я не хочу этого делать, потому что это позволяет любому использовать эти файлы. Что я хочу сделать, так это написать *, только если мой CDN запрашивает, который содержит заголовок X-MS-CacheID, однако, похоже, он не работает. Это вызывает проблемы COR, такие как его не ударить.

Любая подсказка, если мой формат правильный?

Old Way

<outboundRules>
        <rule name="Set Access-Control-Allow-Origin header">
          <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
          <action type="Rewrite" value="*" />
        </rule>
      </outboundRules>

Новый путь

 <outboundRules>
  <rule name="Set Access-Control-Allow-Origin header">
      <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
      <action type="Rewrite" value="*" />
                <conditions>
                    <add input="HTTP_x_ms_cacheid" pattern=".*" />
                </conditions>
    </rule>
  </outboundRules>

Зарегистрированный запрос

GET https://example.com/home/test?r=777
Connection: Keep-Alive
Accept-Encoding: gzip, br
Cookie: _hp2_id.2757902115=%7B%22userId%22%3Anull%2C%22pageviewId%22%3A%225689423556149444%22%2C%22sessionId%22%3A%221868667023650329%22%2C%22identity%22%3A%2210afdd1785cda40fd3369b7ac259331261f1183c%22%2C%22trackerVersion%22%3A%223.0%22%7D; _ga=GA1.2.937945742.1498499252; __zlcmid=hDgYBKLfkviazc; ajs_anonymous_id=%229aa463a1-0b5b-4813-8743-63927a622489%22; ajs_user_id=%2216754861248%22; ajs_group_id=1336088; rxVisitor=15214949470675C4GAOAP6N7F4G5KA91BTI1MPDG4LLKS; __qca=P0-1799053232-1532395382422; __zlcprivacy=1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
upgrade-insecure-requests: 1
X-MS-Ref: 0eEk5XAAAAAAZD5NP0YhTRbA/Fq601jLiQVRBRURHRTEyMTEAOWY2OTZmMDMtODg4My00MzYxLWIwODQtNDc3YzIzYjA3Mjcy, 0eEk5XAAAAACPv5BjdqqhSJV3bz5bv3RMQkwyRURHRTAzMTkAOWY2OTZmMDMtODg4My00MzYxLWIwODQtNDc3YzIzYjA3Mjcy
X-MS-CacheID: 591DC589-C82D-4290-BB1C-0323968866CC, 6696BBA5-FA1D-4A4B-B73C-C55E067D588F

1 Ответ

0 голосов
/ 12 января 2019

Ну, я думаю, что мой запрос к файлам CSS и Font не имел X-MS-CacheID, но имел X-MS-Ref.

<rule name="Set CDN Access-Control-Allow-Origin header" stopProcessing="true">
          <match serverVariable="RESPONSE_Access-Control-Allow-Origin" pattern="(.*)" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
            <add input="HTTP_x_ms_ref" pattern=".*" />
          </conditions>
          <action type="Rewrite" value="*" />
        </rule>
...