PHP 7のファイルアップロードの処理は、PHP 7のファイルアップロードのハンドリングには、主に組み込み
スーパーグロバルアレイをレバレバリングするいくつかの重要なステップが含まれます。この配列には、名前、一時的な場所、サイズ、タイプ、エラーステータスなど、アップロードされたファイルに関する情報が含まれています。 プロセスは通常、次の手順に従います:$_FILES
- htmlフォーム:
-
属性を持つHTMLフォームを作成します。この属性は重要です。これは、PHPがアップロードを正しく処理するために必要なMultiPart/Form-Dataとしてファイルデータを送信するようにブラウザに指示します。 フォームには、ユーザーがファイルを選択できるようにするための要素を含める必要があります。
enctype="multipart/form-data"
<input type="file">
php処理: - サーバー側(PHPスクリプト)には、SuperGlobalにはアップロードされたファイル情報が含まれます。 (ファイル名)、
$_FILES
(一時ファイルの場所)、$_FILES['file_input_name']['name']
(バイト単位のファイルサイズ)、$_FILES['file_input_name']['tmp_name']
(ファイルMIMEタイプ)、$_FILES['file_input_name']['size']
(アップロードエラーコード)などのインデックスを使用して、ファイルの詳細にアクセスします。$_FILES['file_input_name']['type']
要素の実際の$_FILES['file_input_name']['error']
属性に'file_input_name'
name
<input type="file">
- エラー処理:値を確認することを忘れないでください。 異なる数値値は異なるエラーを表します(たとえば、0は成功を示し、4はファイルがアップロード制限を超えたことを示します)。 これらのエラーを優雅に処理し、アップロードが失敗した場合にユーザーに通知します。この関数は、ファイルが安全に移動されることを保証し、潜在的なセキュリティの脆弱性を防ぎます。 たとえば、
$_FILES['file_input_name']['error']
-
cleanup:アップロードが成功した場合、またはエラーが発生した場合は、一時ファイルをクリーンアップすることを忘れないでください。 通常、PHPはこれを自動的に処理しますが、明示的に削除すると堅牢性が向上する可能性があります。 いくつかの手段が不可欠です:
move_uploaded_file()
-
ファイルのタイプ検証:簡単にスプーフィングできるため、値だけに依存しないでください。 代わりに、
$_FILES['file_input_name']['type']
およびfinfo_open()
関数を使用して、コンテンツに基づいてファイルのMIMEタイプを決定します。これにより、ファイルタイプを確認するためのより信頼性の高い方法が提供されます。 これにより、予期しない拡張機能を備えた悪意のあるアップロードを防ぐのに役立ちます。 ディレクトリのトラバーサル攻撃を防ぐためにファイル名を消毒します。finfo_file()
- ファイルサイズ制限:PHP構成で適切なファイルサイズ制限を設定し( および
- in)、また、スクリプトのファイルサイズを検証して、サーバーを圧倒する可能性があります。ファイル名を消毒して、ディレクトリのトラバーサル攻撃を防止します(悪意のあるユーザーが指定されたアップロードディレクトリ外にファイルにアクセスしようとします)。 のような関数を使用して、ファイル名のみを抽出し、潜在的に有害な文字が含まれていないことを確認してください。
upload_max_filesize
post_max_size
php.ini
ディレクトリアクセス許可: アップロードディレクトリに適切な権限があることを確認してください。 Webサーバーには書き込みアクセスが必要ですが、システムのセキュリティを損なう可能性のある過度の権限を持たないようにしてください。 -
定期的なセキュリティ監査:
basename()
コードとセキュリティプラクティスを定期的に確認して、潜在的な脆弱性を特定して対処します。 ファイルタイプの検証( および
を使用)、ファイル拡張検証(ホワイトリストを使用)、ファイルサイズの検証の組み合わせは、悪意のあるファイルに対する堅牢な防御を提供します。 さらに: -
ファイルのタイプ検証:簡単にスプーフィングできるため、値だけに依存しないでください。 代わりに、
- コンテンツスキャン: セキュリティの強化については、アップロードされたファイル内の悪意のあるコードを検出するためにコンテンツスキャンを実行するサードパーティライブラリまたはサービスを統合することを検討してください(例えば、ウイルス、マルウェア)。ハッシュ)アップロードされたファイルを管理するためのベストプラクティスは、アップロードされたファイルが転送中に改ざんされていないことを確認するため
アップロードされたファイルの効率的な管理を管理するために不可欠です。 これらのベストプラクティスを考えてみましょう:
- 整理されたストレージ:適切に構造化されたディレクトリ構造を作成して、アップロードされたファイルを論理的に整理します。 これは、日付、ユーザーID、またはその他の関連する基準に基づいている場合があります。 セキュリティ上の理由からファイルをWebRootディレクトリに直接保存しないでください。
- データベース統合:データベース内のアップロードされたファイル(ファイル名、ファイルパス、アップロード日、ユーザーIDなど)についてメタデータを保存します。これにより、ファイルに関する情報を簡単に管理および取得できます。 タイムスタンプ、ランダム文字列、またはハッシュの組み合わせを使用して一意の名前を作成できます。
- ファイル圧縮:
- 大型ファイルを圧縮してストレージスペースを保存し、ダウンロード速度を改善します。古いファイルまたは未使用のファイルを定期的にクリーンアップして、ストレージスペースを効果的に管理します。 この目的のためにCRONジョブまたはスケジュールされたタスクを使用することを検討してください。 cdn統合:
- 高トラフィックアプリケーションについては、コンテンツ配信ネットワーク(CDN)を使用して、複数のサーバーにアップロードされたファイルを配布し、パフォーマンスとスケーラビリティを改善します。セキュリティは継続的なプロセスであり、堅牢で安全なシステムを維持するためには、定期的な更新とレビューが不可欠であることに注意してください。
以上がPHP 7でファイルアップロードを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

Dreamweaver Mac版
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
