0

私は基本的に、ページ上でアクセスされた場合にファイルを返すコントローラーアクションを設計しようとしていますが、誰かが URL に直接アクセスしたり、ホットリンクしようとした場合はそうしません。

私はこのようなものを見ましたが、私にはうまくいきませんでした C# 4

Page page = HttpContext.Current.Handler as Page;

if (page != null)
{
 // Use page instance.
}

私も HttpContext.CurrentHandler を使ってみましたが、うまくいきませんでした。あなたが与えることができる任意の助けをいただければ幸いです。

4

2 に答える 2

0

私はそれがあなたを助けることができると思います:

ASP.NET サイトからの画像のホットリンクを防ぐ方法は?

于 2012-08-17T15:46:30.167 に答える
0

通常のチェックは、リファラーが好みのものに設定されているかどうかを確認することです-チェックHttpRequest.UrlReferrer

より堅牢なチェックは、ファイルへの「ランダムな」URL を生成するか、ページのみが提供できるクエリ パラメータを追加することです (つまり、現在の時刻のハッシュ + サーバーだけが知っているシークレット値)。

/Files/Special.txt?openvalue=2012-08-17&hash=HASHVALUE

ここで、HASHVALUE は、「openvalue」といくつかの秘密データ (つまり、「2012-08-17」 + 「secretetext」) の連結に基づいて計算されます (つまり、SHA256)。

このようにして、リンクがページによって生成されているかどうかを確認し、必要に応じてリンクを無効にすることができます。

于 2012-08-17T15:51:07.117 に答える