私は(a scriptとStackの助けを借りて、友人の助けを借りて、私はPHPについてほとんど知りません)人々が写真をアップロードできる地方の非営利出版物のための簡単なページを作成しました。PHP画像アップロードスクリプトを悪用から保護するにはどうすればよいですか?
私は(無知の根拠からではなく、意図的な過失)セキュリティとは大きくないが、私はこのページを保護するには、次の手順を撮影した:
PHPスクリプトのみの.jpgを受け入れるように設定されています、.png、.tifファイルをアップロードします。
•フォームコンテンツを保存するサブフォルダにはアクセス権が700、アップロードされた写真を保存するサブフォルダには700に設定されたアクセス許可があります。文書によると、私のホストは唯一の.phpファイルを.phpのように実行することを確認するために、以下の構成を有する
•:
<FilesMatch \.php$>
SetHandler php52-fcgi
</FilesMatch>
私は関連で.htaccessファイルに置く(メインにして、コンテンツを保存)しました。•フォルダ:一晩
RemoveHandler .php
RemoveHandler .inc
RemoveHandler .pl
RemoveHandler .cgi
RemoveHandler .py
RemoveHandler .fcgi
は、しかし、誰かがこのテストページを発見し、完全に良性のテストメッセージや小.jpgのように思える提出しました。これは私と他の約3人だけが知っている非直感的なURLを持つ非公開のテストページです。他のどの人もこのテストを送っていませんでした。
これは明らかに何かが起こっていることを心配しています。私は、このページが安全であることを確かめるために十分なセキュリティがわからないと心配しています。
紛失していることが明らかですか?
($ _FILES ['upload'] ['name'] 'の中の)ユーザーが指定したファイル名は信頼できず、簡単に変更できます。これらの拡張子はチェックしないでください。 'getimagesize()'が有効な結果を返すかどうかを調べるには、mimeの型を調べます。可能であれば、独自のファイル名を生成します。 – MarcDefiant