2017-04-24 7 views
0

私のアプリケーションは、アップロードされたユーザーデータをAzureブロブストレージアカウント(写真など)に保存します。 BLOBの名前は、リレーショナルデータベースの対応する行の主キーの名前になります。例えば、/tenants/12/users/456/photos/1563445Azureのブロブ名を難読化または暗号化することは可能ですか?

これらのファイルは、匿名の認証されていないユーザーがアクセスできるようになっていますが、プライマリキーの値を公開したくない(「順次アクセス」攻撃を防止するため、または競合他社のサービスが)。

現在、私のBLOBストレージコンテナはプライベートであり、ブロブのすべてのリクエストは私のWebアプリケーションを通じてプロキシされています。サーバーの負荷を軽減するために、ブロブを直接公開したいと考えていますが、これは未処理のデータベースのプライマリキー値を提供するエンドユーザに未処理のブロブ名を公開することを意味します。

共有アクセスシグネチャを使用してBLOBへのアクセスを防ぐことはできますが、そのようなセキュリティは必要ありません。単純な対称暗号化など、BLOB名を難読化したいだけです。

「純粋なAzure」アプローチを使用してこれを実現し、BLOBストアを直接公開する方法はありますか、自分でプロキシを使用する必要はありますか?

+1

ファイル名をハッシュするファイルをアップロードしてから、データベースに参照を保持する機会はありますか? – CtrlDot

+0

SAS URLを使用しない理由はありません。そのレベルのセキュリティを必要としないことは、あなたの問題には関係ありません。 – Sentinel

答えて

1

これは完全にあなたとあなたのアプリに任されます。コンテナ名とブロブ名が公開されている命名規則に従う限り、それらの名前は任意の名前にすることができます。しかし、あなたが本当に何を(データベースIDのような)難読化したいのであれば、独自のマッピングを行い、そのマップをどこかに格納する必要があります。ブロブストレージの組み込みの難読化機能はありません。

-1

は、たぶん、あなたが必要なものだけで、ユーザーの個人データの公開コンテナを使用して、一般的にしかしhashids

をhashidsされ、良いアイデアではありません。 SASは実際には非常に安全です。なぜなら、リンクはたった今利用可能だからです.popelがハッキングする前に、すでに期限切れになっているはずです。

+0

これは製品を接続する場所ではありません。この問題は、SASの良し悪しや公共コンテナの使用については何の関係もありません。 –

+0

@DavidMakogon著者はobfuscate blobの名前について尋ねましたが、hashidsは明らかにその答えです。私はこれが「プラグ製品」ではないと考えています。そうでなければ専門用語は「プラグ製品」になります。 – xeranic

関連する問題