0

s3_file_fieldを使用してビデオを S3 に直接アップロードしており、クライアント側の検証を使用してアップロードがサイズ制限内であることを確認する予定ですが、ハッカーが JS をオフにしてアップロードできるのではないかと心配しています。 500 GB のファイルを S3 バケットに。

以前は、クライアント側の検証を使用するたびに、それらをバックアップするサーバー側の検証も行っていたので、ユーザーが JS をオフにすることについてあまり心配したことはありませんでしたが、サーバー側を使用することはできません。 S3に直接行くので、ここで検証します。

ハッカーがクライアント側の検証を回避するのはどれくらい簡単ですか? JSをオフにするだけですか?JS が無効になっているときに、アップロード フォームを無効にすると役に立ちますか?

アップロードされた動画をスイープし、アップロード後、ユーザーがアクセスできるようになる前に検証を実行するワーカーまたはオブザーバーを実装する必要がありますか?

4

2 に答える 2

2

S3 バケット自体に設定できる最大ファイル アップロード サイズの制約はありません。私が知る限り、そのための AWS ポリシー規定はありません。

しかし、S3 はCORSs3_file_fieldをサポートしています。これは、この直接アップロードを機能させるために使用するものです。S3content-length-rangeが CORS のポリシー要素をサポートしている場合は、それを追加でき、おそらくカバーされます。

また、 s3_file_fieldは実際にはjQuery File Uploadの拡張機能であり、ここに記載されているものなど、さまざまな検証オプションがありmax_file_sizeます。デフォルトでは 500 メガバイトで、上書きできるようです。s3_file_fieldmax_file_size

いずれにせよ、ユーザーが JavaScript を無効にすると、JQuery ファイル アップロードを実行できなくなります。つまり、CORS 経由で何もアップロードできないはずです。

ドキュメントに記載されているように、必ずAllowedOriginin productionを指定してください。s3_file_field

于 2013-07-29T11:11:08.593 に答える
1

もちろん、クライアント側のサイズ チェックは上書きできます。ただし、s3 に直接アップロードする場合は常に、許可されるものと許可されないものを指定するポリシー ドキュメント (AWS 認証情報で署名されたもの) があります。

特に、ファイル サイズに制限を設定できます。s3_file_field適切に設定されているように見えるので、誰かがクライアント側のチェックを回避したとしても、ポリシーに一致しないため、s3 はアップロードを拒否します。

于 2013-07-29T11:24:02.657 に答える