首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止热链接不工作IIS 10 - Windows服务器2016

防止热链接不工作IIS 10 - Windows服务器2016
EN

Stack Overflow用户
提问于 2020-01-13 13:24:21
回答 1查看 565关注 0票数 0

我不知道如何阻止IIS10- web.config上的热链接。我在google上找到了一个解决方案,但它似乎不起作用,这是我的代码:

代码语言:javascript
复制
            <rule name="Hotlinking Preventing" stopProcessing="true">
                <match url=".*\.(png|jpe?g|gif)" />
                <conditions>
                    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
                    <add input="{HTTP_REFERER}" pattern="^https?://(m\.)?domain\.com/.*$" negate="true" />
                </conditions>
                <action type="Rewrite" url="/assets/images/hotlinking.png" />
            </rule>

有什么想法吗?(?非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-14 11:17:15

作为一名网站开发人员,有时不希望自己网站上的图片被直接引用并显示在其他网站上。在某些情况下,它可能会为我们的数据中心带来大量的网络带宽,这意味着我们需要为使用我们镜像的用户付费。

例如,你的网站是www.sample1.com,你在http://www.sample1.com/test.jpg上有一张图片,www.sample2.com在www.sample2.com上使用你的图片,通过在他们的HTML中放置一个标签,这可能会导致网络请求进入你的服务器消耗你的资源。

如果用户登陆www.sample2.com访问http://www.sample1.com/test.jpg,对于www.sample1.com的web服务器,这个特定图像的HTTP请求将有一个名为"referer“的HTTP头,其值为”http://www.sample1.com...“。这是我们将检查和阻止请求的地方。

url重写规则:

代码语言:javascript
复制
 <rule name="Prevent Image Hotlinking">
<match url=".*\.(jpg|jpeg|png|gif|bmp)$" />
<conditions>
                    <add input="{HTTP_REFERER}" pattern="^$" negate="true" />
                    <add input="{HTTP_REFERER}" pattern="^http://www.sample1.com/.*$" negate="true" />
</conditions>
<action type="Rewrite" url="/img/no_hotlinking.png" />

如果仍然不起作用,请尝试禁用缓存,然后重试。

如果您想阻止多个站点,那么您也可以使用重写映射并设置站点列表。

代码语言:javascript
复制
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Blacklist block" stopProcessing="true">
          <match url="(?:jpg|jpeg|png|gif|bmp)$" />
          <conditions>
              <add input="{HTTP_REFERER}" pattern="^https?://(.+?)/.*$" />
              <add input="{DomainsBlackList:{C:1}}" pattern="^block$" />
              <add input="{REQUEST_FILENAME}" pattern="splog.png" negate="true" />
          </conditions>
          <action type="Redirect" url="http://www.hanselman.com/images/splog.png" appendQueryString="false" redirectType="Temporary"/>
      </rule>
    </rules>
    <rewriteMaps>
              <rewriteMap name="DomainsBlackList" defaultValue="allow">
                  <add key="google-chrome-browser.com" value="block" />
                  <add key="www.verybadguy.com" value="block" />
                  <add key="www.superbadguy.com" value="block" />
              </rewriteMap>
    </rewriteMaps>
  </rewrite>
</system.webServer>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59710958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档