ホームページ >バックエンド開発 >PHPチュートリアル >悪意のある攻撃を防ぐために、PHP で画像のアップロードを保護するにはどうすればよいですか?
画像アップロードの保護
はじめに
画像アップロードの保護は、Web サイトを悪意のある攻撃から保護するために重要です攻撃します。 PHP には画像処理用の組み込み関数がいくつか用意されていますが、不正アクセスや悪用を防ぐために追加の対策を実装することが不可欠です。
課題
画像アップロードのセキュリティには、次の課題:
安全なアップロード スクリプト
これらの懸念事項に対処するには、次の手順を実装します。
if (!in_array($ext, $whitelist_ext)) { $out['error'][] = "Invalid file Extension"; }
if (!in_array($_FILES[$file_field]["type"], $whitelist_type)) { $out['error'][] = "Invalid file Type"; }
アップロードされたファイルの名前を変更し、安全な場所に保存しますドキュメントルートの外側の場所。データベースを使用して、表示目的で元のファイル名を追跡します。
アップロードされた画像へのアクセスを許可するデータベース内のファイルの存在を検証する安全なスクリプト。
画像処理
アップロード プロセスを保護することに加え、GD ライブラリまたは同様のツールを使用してアップロードされた画像を処理し、それらが実行可能ファイルではなく正当な画像であることを確認することが重要です。
完全なスクリプト
完全な安全な画像アップロード スクリプトには、次の内容を組み込むことができます。要素:
// Config Section $path = 'uploads/'; $max_size = 1000000; $whitelist_ext = array('jpeg','jpg','png','gif'); $whitelist_type = array('image/jpeg', 'image/jpg', 'image/png','image/gif'); // Validation if (count($out['error'])>0) { return $out; } if (move_uploaded_file($_FILES[$file_field]['tmp_name'], $path.$newname)) { // Success $out['filepath'] = $path; $out['filename'] = $newname; return $out; } else { $out['error'][] = "Server Error!"; } // If no file was uploaded if (count($out['error'])>0) { // The file has not correctly validated return $out; }
追加措置
結論
これらを実装することで、対策として、Web サイトとそのユーザーを潜在的な攻撃や脆弱性から保護する安全な画像アップロード スクリプトを作成できます。進化する脅威に先手を打つために、セキュリティ対策を定期的に確認して更新することを忘れないでください。
以上が悪意のある攻撃を防ぐために、PHP で画像のアップロードを保護するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。