如何在IIS重写规则条件下使用Sec-Fetch-Site请求标头

mftmpeh8  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(80)

我想限制对IIS网站上托管的某些资源的访问。
更具体地说,我希望这些资源,如图像或html文件,只能在或从完全相同的域和服务器上托管的页面中查看。没有直接访问,不能嵌入其他网站,不能从其他网站复制。
我还希望这些文件是动态从网站本身使用react.js。
为此,我发现我可以检查Sec-Fetch-Site请求头必须设置为相同来源才能接受请求。
因此,在IIS重写规则模块中,在包含这些文件的特定文件夹上,我编写了一个重写规则HTTP_Sec_Fetch_Site不等于同源,但它不起作用。
请告诉我如何写这样的规则。

exdqitrt

exdqitrt1#

您可以尝试IIS URL重写规则,以避免其他来源不使用文件。Sec-Fetch-Site标头是HTTP规范中相对较新的添加,可能并非在所有情况下都可用,特别是如果没有其他配置,可能无法在IIS URL重写模块中直接访问。

<rule name="test" stopProcessing="true">
      <match url=".*\.(jpg|jpeg|png|gif|bmp|html)$" />
      <conditions>
          <add input="{HTTP_REFERER}" pattern="^$" />
          <add input="{HTTP_REFERER}" pattern="www.sample1.com" />
      </conditions>
      <action type="AbortRequest" />
 </rule>

字符串
在匹配URL中,您可以根据您的需求进行修改。或者您可以将(.*)作为模式。

vsnjm48y

vsnjm48y2#

我没有在重写规则中使用正确的语法。
解决方案是使用重写规则,例如:
{HTTP_SEC_FETCH_SITE}与同源不匹配
它在Google Chrome和MS Edge的IIS 10上运行良好。

相关问题