質問

ホストされているASP.NET Webサイトからの画像へのホットリンクを防ぐための最良/最も簡単な方法は何ですか?すべての画像/リソースのホットリンクを防止する必要はありません。サイト上の特定の画像/リソースへのホットリンクを防止したいだけです。参考までに。 GoDaddy.comでホストされているため、IISのトリックはおそらく機能しません。

役に立ちましたか?

解決

ASPXページを介して画像をストリーミングすることは、優れたソリューションです。リファラーはハッキングされる可能性がありますが。

あなたができることは、あなたが本当にセキュリティに関心があるなら、ユニークなソルト(キーワード)を使用し、MD5(SHA-1またはSHA-2)に対して生成することです。これに対して現在のエポック時間も同様に実行します。これにより、画像にも期限が設定されます。この<!> quot; keycode <!> quot;を保存します。クッキーに。画像が提供されるたびに、基本的にクエリ文字列を介してこれを渡します。検証は、反対側のASPXで行われます。新しい<!> quot; keycode <!> quot;を再生成することもできます。 HTTPRequestModuleまたはGlobal.asaxページを使用した各リクエスト間。

オーバーヘッドが発生しますが、だれでもホットリンクできなくなります。

他のヒント

これを行う最も簡単な方法は、IIS 7.0のUrlRewriteを使用することです。

https://help.maximumasp.com/KB /a738/using-url-rewrite-to-prevent-image-hotlinking.aspx

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="PreventImageHotlinking" enabled="true" stopProcessing="true">


<match url=".*\.(gif|jpg|png)$" />
  <conditions>
                        <add input="{HTTP_REFERER}" negate="true" pattern="^$" />
                        <add input="{HTTP_REFERER}" negate="true" pattern="http://www.YourDomain.com/.*" />
  </conditions>
  <action type="Rewrite" url="/images/hotlinking.jpg" />
</rule>
            </rules>
        </rewrite>
    </system.webServer>

サイトがHTTPリファラーヘッダーフィールドにない画像のリクエストは拒否できます。それが理論です。アプリケーションで要求を制御するには、ASPページを介してすべての画像をストリーミングする必要があります(直接リンクするのではなく)。

私が賢明だと思ったことの1つは、画像の下部に余分な部分を追加してから、CSSスプライトテクニックを使用して、サイトに表示されたときにそれを切り捨てることです。素朴なホットリンクでは、余分な部分が表示されます。これは、画像が歪んでいることを意味するため、他のサイトでは正しく表示されず、余分な部分を使用して独自のURLまたはその他の必要なものを表示できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top