2016-06-14 18 views
0

私は自分のウェブアプリケーションに画像アップロード機能を持っていますが、<script>alert('XSS')</script>のようなコードでphpファイルをアップロードしようとしましたが、そのファイルはhack.php.jpgです。アップロードしてアップロードしました。その場合、scriptが実行され、悪意のあるユーザーに何かが返されるか、.jpgの中のscriptは無視されますか?私のアップロードイメージの機能のリストは以下の通りです:

有価証券アップロード画像PHP

1)イメージの名前が変更され、フォルダに保存されます。

2)extensionsのみがjpg, png, jpegです。

3)ファイルサイズ< 1000000

imgの名前を変更するために使用されるuniqid()

5)imgを保存し、そのフォルダのimgを削除する場合は、unlink()move_upload_file()を使用します。

6)私の<form> enctypemultipart/form-dataaccept="image/*"です。

私はcodecourse php upload fileビデオで自分のコードを学びました。

答えて

0

どのようにファイルの拡張子を解析しますか? 理想的には、ファイルの名前を完全に変更します。たとえば、 "randomhash.jpeg/jpg/png"とします。そうすれば、 ".php"拡張子を含むことは不可能です。

もう1つのことは、画像を保存するフォルダ内のPHPコードの実行を(nginxまたはApacheで)無効にすることです。

さらに、機能getimagesizeexif_imagetypeを使用して、有効な画像であることを確認することもできます。これらの機能は完全に機能しているわけではありません。

+0

PHPの実行を無効にするための推奨されるチュートリアル(APACHE)ありがとうございます。 – phew

+0

@phew http://stackoverflow.com/a/1272068/6275228またはhttp://webmasters.stackexchange.com/questions/74668/apache-disable-php-in-a-directoryを参照してください。 – Technidev

+0

私は追加の質問があります、私の写真は大きすぎます、 '1MB' atleast、私は500または400 KB以下を欲しいです。ローディングが遅すぎるため – phew

関連する問題