セキュリティの観点からGUIDの使用に関するアドバイスを求めています。ASP.Netアプリケーションを開発しました。これにより、ユーザーは、Webサーバー上にないドキュメントや写真などの一部の資料にアクセスできます。これらはファイルサーバーに保存されます。リソースのIDを取得し、System.IO.FileInfoを使用して開く「GetResource.aspx」ページがあり、それを応答ストリームに書き込んで返します。
したがって、GetResource.aspx?id = 123は、たとえば、ユーザーがアクセスできる画像を返します。もちろん、ユーザーはURLをGetResource.aspx?id = 456として手動で入力することもできます。その場合、そのIDを持つ画像/ドキュメントなどが返され、アクセスする権限がない場合があります。
したがって、明らかに整数IDを使用することは適切ではありません。IDとしてGUIDを使用すると、ユーザーが手動で「GetResource.aspx?guid = {推測されたGUID}」と入力できず、スクリプトを使用する場合を含め、有効なリソースにアクセスすることを期待できないほどの「ランダム性」が得られます。それは毎秒多くのランダムな推測をしましたか?
または、Session変数からユーザーのIDを決定し、ユーザーが実際に要求されたリソースにアクセスできると判断して、それを返す以外に方法はありません(これを書いていると、私はますます確信しています! )。
ありがとう