1

私は、画像ファイルのアップロードも可能にするオンライン アプリケーションに取り組んでいます。アップロードを処理するサーバーは C で記述されているため、悪意のあるコンテンツをアップロードできないかと考えていました。ウイルスや悪意のあるコードなどについて話しています。MIME タイプとファイル サフィックスを確認できるように、画像のアップロードのみを許可します。しかし、これで十分かどうかはわかりません。<img>アップロードされた画像は、HTMLタグを介して自動的に配信されます。

過去に画像がバッファオーバーフローやその他の不快なものを引き起こすために使用されたことを知っています. しかし、これはチェックする私の責任ではなく、ブラウザの最後で、画像処理によって脆弱性が公開されないようにするためでしょうか?

要するに、ユーザーが提供する画像に依存するサービスを提供する場合、サーバーがマルウェアの配布センターになるのを防ぐにはどうすればよいですか? この懸念に関するベストプラクティスは何ですか? 特定のアルゴリズムまたは特定のライブラリを介してアップロードされたファイルを確認しますか? それは私の側に脆弱性を開きますか? それはまったく私の懸念ですか?

編集:ファイルアップロード部分の操作モードについて具体的ではなかったかもしれません。モジュールそのままでnxweb書かれたサーバーCのモジュールです。そのため、そのモジュール内のファイルを検証する方法を探しています。

4

1 に答える 1

2

ファイルをテストするだけです: イメージ (イメージであることを確認するため) と実行可能ファイル (それらを破棄するため)。

画像をテストするには、ImageMagick、OpenCV、FFmpeg、またはいくつかの異なる形式を開くことができる同様のライブラリで開いてみてください。ファイルを画像として開けない場合、それは画像ではありません!

画像のみをテストするだけでも問題ありませんが、実行可能ファイルをテストしてさらに精度の高い結果を得たい場合は、PE 形式(Windows)、Linux ELFMach-O (Mac OS X) などを探してください。難しいものではありません。パースします。これには多くのオープンソースがあります。

于 2013-10-14T18:16:59.877 に答える