簡単な方法でjpg/pngタイプの写真をアップロードする許可をユーザーに与えたい..これはウェブサイトにとって危険ですか..誰かがこれで私のウェブサイトをハッキングまたは損傷する可能性があります. サーバーサイドでPHPを使用しています。
1 に答える
5
自分が何をしているのかわからないと危険です。
それが本当に画像であることを確認しないと、潜在的なハッカーが完全に機能するC99スクリプトをアップロードし、サイト、さらにはサーバーを完全に破壊する可能性があります。
基本的に、 (最低限)必要なことは、 getimagesizeを使用して、アップロードされたファイルが実際に画像であることを確認することです。
これについては、stackoverflow で多くの質問があります。
if (!getimagesize($_FILES['your_image']['tmp_name'])){
die('Not an image');
}
@deceze からの優れたアドバイスはこちら.
ユーザーの入力を信頼すると、最終的に後悔することになります。MIME タイプは簡単に偽造できます。ファイル拡張子については何も言いません。
いくつかの基本的なルール:
- ユーザー入力を絶対に信頼しない
- 常に入力をサニタイズする
- ユーザーが画像をアップロードできるようにする必要がある場合は、そのためのスクリプトが既に用意されています。これは、すべてのユーザーが達成できるよりもはるかに安全です。
本当に運試しをしたい場合は、少なくともアップロード ディレクトリとその中のすべてのサブディレクトリでphp を無効にしてください。
.htaccess
これを含むアップロードディレクトリにファイルを追加することでそれを行うことができます。
php_flag engine off
于 2013-10-23T16:36:24.247 に答える