Medrdadの答えに加えて:ユーザー提供のコンテンツをホストするのは少し注意が必要です。zipファイルをホストしている場合は、Javaクラスファイル(他の形式でも使用されます)を保存するために使用できるため、「同一生成元ポリシー」が破られる可能性があります。(zipが別のファイルの末尾に添付されたGIFAR攻撃がありましたが、Java PlugIn / WebStartでは機能しなくなりました。)画像ファイルは、少なくとも実際に画像ファイルであることを確認する必要があります。明らかに、バッファオーバーフローの脆弱性があるWebブラウザには問題があり、サイトが訪問者を攻撃するために使用される可能性があります(これにより人気がなくなる可能性があります)。たとえば、regexを使用してデータを渡すクライアント側のソフトウェアがいくつかある場合があります。これにより、イメージファイルの途中のデータを実行できます。Zipファイルにはいたずらなファイル名が付いている場合があります(たとえば、../
と奇妙な文字)。
何をすべきか(必ずしも網羅的なリストではありません):
- ホストユーザーが完全に異なるドメインでファイルを提供しました。
- ユーザーファイルのあるドメインは、異なるIPアドレスを使用する必要があります。
- 可能であれば、データをデコードして再エンコードします。
- zip爆弾に関する別のstackoverflowの質問があります-
ZipInputStream
それが大きくなりすぎた場合は、使用して解凍し、停止することをお勧めします。
- ネイティブコードがユーザーデータにアクセスする場合は、chrootgaolで実行します。
- 文字をホワイトリストに登録するか、ファイル名を完全に置き換えます。
- 潜在的に、何らかの説明のIDSを使用して、疑わしいデータをスキャンすることができます(これがどれだけ行われるかは本当にわかりません。IDSがCで書かれていないことを確認してください!)。