安全な PHP ファイル アップロード スクリプトを実装する必要があります。スクリプトが安全であることを確認するために、現在どのような方法を使用していますか?
許可された拡張機能をホワイトリストに登録し、Apache がユーザーとして実行されていることを確認して、デフォルトで 777 パーミッションの必要性を回避します。
アップロードされるファイルは画像で、MySQL にアクセスできます。ユーザーは、アップロードされたファイルを表示できる必要があります。
ありがとう!
悪意のあるファイルがアップロードされないようにするためのアドバイスについては、インジェクションを含む GIF のアップロードを阻止する方法への回答を参照してください。.
もう 1 つの重要な点は、SQL インジェクションを回避することです。攻撃者によって変更される可能性のあるデータ (Cookie、ユーザー エージェント、クエリ文字列、POST データ (アップロードされたファイル名を含む)、ヘッダー、動的パス名など) は、最初に通過するmysql_real_escape_string
か、同等の MySQLiに渡されることなく使用しないでください。整数の場合は、intval()
関数を使用します。
ファイル拡張子を確認するには、あなたが言っているように行いますが、適切な拡張子を持つアップロードされたファイルが実際にそのとおりであることを確認するには、verify コマンドを使用して imagemagick を実行してみてください。これは、イメージが主張どおりであることを疑いの余地なく保証する数少ない方法の 1 つであると思われる単純なソリューションです。
また、PHP 関数is_uploaded_fileを使用して、セキュリティをさらに強化します。
言うまでもありませんが、PDO は PHP のあらゆる面でデータベース トランザクションに使用する必要があります。
最後に、バリデーションに javascript を使用する場合、ある程度の能力を持つ Web ユーザーが簡単にオーバーライドできることを覚えておいてください。クライアント側の検証はユーザーへの応答性が高くなりますが、適切なサーバー側のチェックで常にバックアップします。