C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

未ログインユーザーのサイト内画像閲覧を防ぐ方法

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■96236 / inTopicNo.1)  未ログインユーザーのサイト内画像閲覧を防ぐ方法
  
□投稿者/ サイキック (1回)-(2020/11/04(Wed) 20:27:46)

分類:[ASP.NET (C#)] 

ASP.NET MVCでNET Identityの認証を使用して開発してます。

[Authorize]属性を付けたコントローラー内で、画像を作成保存し、ビューのimgタグに画像ファイルのパスを渡して表示していますが、
ログイン前にブラウザに画像のパスを直接入れた際も表示できてしまいます。

画像ファイル(画像ファイル保存フォルダ)に認証を付ける方法を教えて頂けないでしょうか。
もしくは画像パスがユーザー側で見えないようにする方法はありますでしょうか。

どちらが一般的な方法なのかは分からないのですが、何かヒントとなるサイト記事などあれば
教えて頂けると助かります。

宜しくお願い致します。






引用返信 編集キー/
■96237 / inTopicNo.2)  Re[1]: 未ログインユーザーのサイト内画像閲覧を防ぐ方法
□投稿者/ WebSurfer (2145回)-(2020/11/04(Wed) 21:34:09)
No96236 (サイキック さん) に返信

.NET か Core なのか書いてないので分かりませんが(書きましょうね)・・・

.NET アプリであれば App_Data とか外から直接アクセスできないフォルダに画像ファイル
を保存して、それをダウンロードするアクションメソッドを作って、その url を img 要素
のsrc 属性に設定してはいかがですか?
引用返信 編集キー/
■96242 / inTopicNo.3)  Re[1]: 未ログインユーザーのサイト内画像閲覧を防ぐ方法
□投稿者/ WebSurfer (2146回)-(2020/11/05(Thu) 10:49:01)
No96236 (サイキック さん) に返信

web.config でアクセス制限をかける方が簡単でした。
詳しくは以下の記事を見てください。

ASP.NET MVCで静的HTMLにアクセス制限をかけようと四苦八苦した失敗談まとめ
https://shin21.hatenablog.com/entry/2016/03/18/100000
引用返信 編集キー/
■96245 / inTopicNo.4)  Re[2]: 未ログインユーザーのサイト内画像閲覧を防ぐ方法
□投稿者/ サイキック (2回)-(2020/11/05(Thu) 15:25:43)
No96237 (WebSurfer さん) に返信

すみません。1度返信したつもりが、投稿できてなかったので遅れてしまいました。
改めまして、

まず、ASP.NET MVCはCoreじゃないほうのASP.NET MVCでした。失礼しました。

> .NET アプリであれば App_Data とか外から直接アクセスできないフォルダに画像ファイル
> を保存して、それをダウンロードするアクションメソッドを作って、その url を img 要素
> のsrc 属性に設定してはいかがですか?
そして、こちらをやってみたところ理想通りの動きとなりました。
こちらの方法、img要素のsrc属性にアクションメソッドのURLを設定するということは
アクションメソッドに[Authorize]属性を付けることで、どこのフォルダでも同様の動きになるのでしょうか。
そして、クライアントに送られるhtml内のimg要素のsrc属性にもアクションメソッドのURLが入っているようなので
画像のURLも隠されていて、さらに理想通りでした。

> web.config でアクセス制限をかける方が簡単でした。
こちらも、まだ試してないですが、拡張子で制限する際には有用と感じました。


今回は前者の方法で進めてみます。

大変助かりました。
ありがとうございました。
引用返信 編集キー/
■96247 / inTopicNo.5)  Re[3]: 未ログインユーザーのサイト内画像閲覧を防ぐ方法
□投稿者/ WebSurfer (2147回)-(2020/11/05(Thu) 18:12:38)
No96245 (サイキック さん) に返信

> こちらの方法、img要素のsrc属性にアクションメソッドのURLを設定するということは
> アクションメソッドに[Authorize]属性を付けることで、どこのフォルダでも同様の動きになるのでしょうか。

そのはずです。試してみてください。


一つ言い忘れましたが、ブラウザやプロキシにキャッシュされると、ログアウトしても画像の URL を
ブラウザのアドレスバーに入力して要求するとキャッシュから表示されてしまいます。

それが NG なら前者の方法(アクションメソッド利用)でキャッシュコントロールするのがよさそうで
す。具体例は以下の記事を見てください。

MVC でファイルのダウンロード
http://surferonwww.info/BlogEngine/post/2018/12/12/file-download-on-aspnet-mvc-application.aspx

注: 上の記事はダウンロードする場合なので File の第 3 引数を設定していますが、質問者さんの
ケースでは不要のはずです。

課題が解決できて他に質問が無ければこのスレッドはクローズ願います。
引用返信 編集キー/
■96252 / inTopicNo.6)  Re[2]: 未ログインユーザーのサイト内画像閲覧を防ぐ方法
□投稿者/ サイキック (3回)-(2020/11/06(Fri) 10:10:11)
2020/11/06(Fri) 12:52:00 編集(投稿者)
2020/11/06(Fri) 12:51:57 編集(投稿者)

No96242 (WebSurfer さん) に返信

ありがとうございます。
[Authorize]属性で制御できました。

キャッシュについてもありがとうございます。
運用に合わせて設定してみます。

それでは、質問内容が解決できましたので、クローズさせて頂きます。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ