2

ウェブサイトの画像には Amazon S3 を使用しており、ユーザーはウェブサイトから画像/ファイルを直接 S3 にアップロードします。ポリシー ファイルでは、「begins-with」「upload/」であることを確認します。これらの画像は、アップロードされた後は一般に読み取り可能な画像であるため、誰でもこれらの画像の完全な URL を見ることができます。ハッカーが侵入し、JavaScript のポリシー データと画像の URL を使用して、これらの画像をデータで上書きすることはできますか? 一度アップロードした後の上書きを防ぐ方法がわかりません。私が見た唯一の解決策は、ファイルをパブリックに書き込み可能ではないフォルダーにコピー/名前変更することですが、画像をダウンロードしてから S3 に再度アップロードする必要があります (Amazon は実際にその場で名前を変更できないため)。

4

3 に答える 3

1

この質問は、サーバーから提供されたポリシー ファイルを使用して、コンテンツがブラウザから S3 に直接送信されることを意味していると思います。そのポリシー ファイルで有効期限が設定されている場合 (たとえば、1 日後など)、ポリシーはその後無効になります。さらに、書き込み可能なパスに開始条件を設定できます。

したがって、ハッカーがポリシー ファイルを使用して悪意を持ってファイルを上書きする唯一の方法は、新しいポリシー ファイルを取得し、指定されたパスにあるファイルのみを上書きすることです。しかし、その時点までに、ポリシー ファイルの提供を拒否する機会が得られます。これは、ユーザーの認証後に発生するものであると想定しているためです。

つまり、適切に構成されたポリシー ファイルを配布し、その前にユーザーを認証していれば、ここで危険はないと思います。もののコピーを作成する必要はありません。

于 2013-10-06T02:30:23.963 に答える
1

私の理解が正しければ、画像はサーバー アプリケーションを介して Amazon S3 ストレージにアップロードされます。したがって、Amazon S3 の書き込みアクセス許可には、アプリケーションのみが含まれます。クライアントは画像をアップロードでき、アプリケーションをスローするだけです (画像は S3 に保存されます)。ハッカーは、アプリケーションに同じ名前の画像をアップロードさせ、元の画像を書き換えさせることしかできません。

ユーザーが S3 ストレージに既に存在する名前の画像をアップロードした場合、どのように対処しますか? 次のアクションを検討してください。

  1. 最初のユーザーが画像some-name.jpg をアップロードします
  2. あなたのアプリはその画像をS3にupload-some-name.jpgという名前で保存します
  3. 2 番目のユーザーが画像some-name.jpg をアップロードします
  4. あなたのアプリケーションは、S3 に保存されているオリジナルのものを上書きしますか?
于 2010-07-25T14:52:50.357 に答える
0

実際、S3にはうまく機能するコピー機能があります

Amazon S3 オブジェクトのコピー

しかし、アムラが上で述べたように、サウンドをコピーしてスペースを 2 倍にすることは非効率的
です。オブジェクトに GUID のようなある種の一意の ID を与え、「x-amz-meta-」で始まる追加のユーザー メタデータを設定する方がよいでしょう。アップロードしたユーザー、表示名などのオブジェクト...
一方で、キーが既に存在するかどうかをいつでも確認し、エラーを求めることができます

于 2010-08-09T20:12:19.330 に答える