ホームページ バックエンド開発 PHPチュートリアル PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法

PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法

Jul 30, 2023 pm 06:53 PM
phpファイルのアップロード 安全ガイド $_files 配列

PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法

要約:
ファイルのアップロードは、Web 開発における一般的な機能の 1 つです。ただし、ファイル アップロードの実装が正しくないと、セキュリティの脆弱性が発生し、アプリケーションに潜在的なリスクをもたらす可能性があります。この記事では、PHP の $_FILES 配列を使用してアップロードされたファイル情報を安全に取得する方法を紹介し、それをいくつかのコード例と組み合わせて読者の理解を深める方法を紹介します。

  1. 適切なファイル アップロード制限を設定する
    PHP では、php.ini ファイルを使用してファイル アップロード制限を設定できます。以下に、一般的な設定オプションをいくつか示します。

    ; 允许上传的文件最大大小
    upload_max_filesize = 5M
    ; 允许同时上传的文件数量
    max_file_uploads = 20
    ; 允许上传的文件类型
    allowed_file_types = image/jpeg, image/png
    ログイン後にコピー

    これらの設定を通じて、アップロードされるファイルのサイズ、数量、種類を制御できるため、潜在的なセキュリティ問題の一部を効果的に防ぐことができます。

  2. $_FILES 配列を使用してアップロードされたファイルの情報を取得する
    PHP では、$_FILES 配列を使用してアップロードされたファイルに関する情報を取得できます。 $_FILES 配列は連想配列で、そのキー名はファイル アップロード フォームの入力フィールドの名前、キー値はアップロードされたファイルに関する情報を含む配列です。

以下は基本的な使用例です:

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file" />
  <input type="submit" value="上传" />
</form>
ログイン後にコピー

ファイルをアップロードするための PHP スクリプトでは、次のようにアップロードされたファイルの情報を取得できます:

$file = $_FILES['file'];
echo "文件名:" . $file['name'] . "<br />";
echo "文件类型:" . $file['type'] . "<br />";
echo "文件大小:" . $file['size'] . "字节 <br />";
echo "临时文件名:" . $file['tmp_name'] . "<br />";
ログイン後にコピー

$ _FILES 配列を通じて、アップロードされたファイルの名前、タイプ、サイズ、一時ファイル名、その他の情報を簡単に取得できます。

  1. アップロードされたファイルのセキュリティ チェック
    アップロードされたファイルに関する情報を取得することに加えて、いくつかの追加のセキュリティ チェックも実行する必要があります。一般的なセキュリティ チェック方法は次のとおりです。

3.1 アップロードされたファイルの MIME タイプを確認する

$allowed_mime_types = array('image/jpeg', 'image/png');
if (!in_array($file['type'], $allowed_mime_types)) {
  die("禁止上传该类型的文件");
}
ログイン後にコピー

アップロードされたファイルの MIME タイプを確認することで、ユーザーが違法なファイルをアップロードすることを防ぐことができます。種類 。

3.2 ファイル拡張子の確認

$allowed_extensions = array('jpg', 'png');
$extension = pathinfo($file['name'], PATHINFO_EXTENSION);
if (!in_array($extension, $allowed_extensions)) {
  die("禁止上传该扩展名的文件");
}
ログイン後にコピー

ファイル拡張子を確認することで、アップロードされたファイルの正当性をさらに確認できます。

3.3 アップロードされたファイルを指定されたディレクトリに移動します

$target_directory = "uploads/";
$target_path = $target_directory . $file['name'];
if (move_uploaded_file($file['tmp_name'], $target_path)) {
  echo "文件上传成功";
} else {
  echo "文件上传失败";
}
ログイン後にコピー

アップロードされたファイルを指定されたディレクトリに移動する際、悪意のあるユーザーがアップロードできないように、ターゲット ディレクトリに適切なアクセス許可設定があることも確認する必要があります。悪意のあるコードのドキュメント。

結論:
$_FILES 配列を適切なセキュリティ チェックと組み合わせて使用​​することで、アップロードされたファイルに関する関連情報を安全に取得でき、望ましくないセキュリティ リスクを効果的に防ぐことができます。新しい開発者でも経験豊富な開発者でも、開発中はファイル アップロードのセキュリティを念頭に置き、アプリケーションとユーザー データのセキュリティを保護するためのベスト プラクティス ガイドラインに従う必要があります。

参考資料:

  • PHP 公式ドキュメント: http://php.net/manual/zh/reserved.variables.files.php

以上がPHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

php CodeIgniter セキュリティ ガイド: Web サイトを攻撃から保護する php CodeIgniter セキュリティ ガイド: Web サイトを攻撃から保護する Feb 19, 2024 pm 06:21 PM

1. CodeIgniter の最新バージョンを使用する CodeIgniter チームは、既知の脆弱性を修正するためにセキュリティ パッチとアップデートを定期的にリリースします。したがって、常に最新バージョンの CodeIgniter を使用していることを確認することが重要です。 CodeIgniter の公式 Web サイトにアクセスして最新バージョンをダウンロードできます。 2. 安全な接続 (HTTPS) の使用を強制する https では、Web サイトとユーザーの間で受け渡されるデータを暗号化できるため、悪意のあるユーザーが傍受したり盗んだりすることがより困難になります。サーバーに SSL 証明書をインストールすることで HTTPS を有効にできます。 3. デフォルト設定の使用を避ける CodeIgniter は、開発プロセスを簡素化するために多くのデフォルト設定を提供します。ただし、これらのデフォルト構成は、

PHP ファイルのアップロード チュートリアル: HTML フォームを使用してファイルをアップロードする方法 PHP ファイルのアップロード チュートリアル: HTML フォームを使用してファイルをアップロードする方法 Jun 11, 2023 am 08:10 AM

PHP ファイル アップロード チュートリアル: HTML フォームを使用してファイルをアップロードする方法 Web サイト開発のプロセスにおいて、ファイル アップロード機能は非常に一般的な要件です。人気のあるサーバー スクリプト言語として、PHP はファイル アップロード機能を非常にうまく実装できます。この記事では、HTML フォームを使用してファイルのアップロードを完了する方法を詳しく紹介します。 1. HTML フォーム まず、HTML フォームを使用してファイル アップロード ページを作成する必要があります。 HTML フォームでは、enctype 属性を「multipart/form-」に設定する必要があります。

PHP ファイル アップロード セキュリティ ガイド: move_uploaded_file 関数を使用してアップロードされるファイルの種類を制限する方法 PHP ファイル アップロード セキュリティ ガイド: move_uploaded_file 関数を使用してアップロードされるファイルの種類を制限する方法 Jul 29, 2023 pm 02:36 PM

PHP ファイル アップロード セキュリティ ガイド: move_uploaded_file 関数を使用してアップロードされるファイルの種類を制限する方法 はじめに: インターネットの発展に伴い、ファイル アップロード機能は Web サイトで重要な役割を果たしています。ただし、ファイルのアップロード機能がハッカー攻撃の入り口の 1 つになることがよくあります。サイトとユーザーのセキュリティを保護するために、ファイルのアップロード機能にセキュリティ対策を講じる必要があります。この記事では、PHP の move_uploaded_file 関数を使用してアップロードされるファイルの種類を制限し、関連するファイルを提供する方法を紹介します。

PHP フレームワーク セキュリティ ガイド: クロスサイト スクリプティング攻撃を防御するにはどうすればよいですか? PHP フレームワーク セキュリティ ガイド: クロスサイト スクリプティング攻撃を防御するにはどうすればよいですか? Jun 05, 2024 pm 04:18 PM

PHP でのクロスサイト スクリプティング攻撃を防止します。ユーザー入力をエスケープし、htmlspecialchars() を使用します。 SQL インジェクションと XSS 攻撃を回避するには、パラメーター化されたクエリを使用します。 CSP を有効にし、スクリプトとコンテンツの読み込みを制限します。 CORS ヘッダーを使用して、さまざまなドメインからの Ajax リクエストを制限します。 Laravelでは、エスケープとフィルタリングにInput::get()とclean()を使用します。

PHP でファイルのアップロードを処理するにはどうすればよいですか? PHP でファイルのアップロードを処理するにはどうすればよいですか? May 11, 2023 pm 10:31 PM

インターネット技術の継続的な発展に伴い、ファイルのアップロード機能は多くの Web サイトで不可欠な部分になりました。 PHP 言語では、いくつかのクラス ライブラリと関数を通じてファイルのアップロードを処理できます。この記事では、PHP でのファイルのアップロード処理方法に焦点を当てます。 1. フォームの設定 ファイルのアップロードをサポートするには、HTML フォームで enctype 属性を「multipart/form-data」に設定する必要があります。コードは次のとおりです: &lt;formaction="upload.

PHP Framework セキュリティ ガイド: Web アプリケーションのセキュリティをテストするには? PHP Framework セキュリティ ガイド: Web アプリケーションのセキュリティをテストするには? Jun 01, 2024 am 11:14 AM

自動セキュリティ テストには以下が含まれます。 単体テスト フレームワーク (PHPUnit など) を使用した単体テスト 統合テスト フレームワーク (Laravel の Dusk など) を使用したコンポーネント相互作用のチェック 手動セキュリティ テストには以下が含まれます。 入力検証テスト SQL インジェクション テスト クロスサイト スクリプティング (XSS) テスト実践的なケースのデモンストレーション Laravel などの PHP テスト フレームワークを使用したテスト方法を学びます。

PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法 PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法 Jul 30, 2023 pm 06:53 PM

PHP ファイル アップロード セキュリティ ガイド: $_FILES 配列を使用してアップロードされたファイル情報を取得する方法 概要: ファイルのアップロードは、Web 開発における一般的な機能の 1 つです。ただし、ファイル アップロードの実装が正しくないと、セキュリティの脆弱性が発生し、アプリケーションに潜在的なリスクをもたらす可能性があります。この記事では、PHP の $_FILES 配列を使用してアップロードされたファイル情報を安全に取得する方法を紹介し、それをいくつかのコード例と組み合わせて読者の理解を深める方法を紹介します。 PHP で適切なファイルのアップロード制限を設定するには、php.ini ファイルを使用して、

PHP ファイルのアップロードのエンコード エラーを処理し、対応するエラー プロンプトを生成するためのヒント PHP ファイルのアップロードのエンコード エラーを処理し、対応するエラー プロンプトを生成するためのヒント Aug 06, 2023 am 09:51 AM

PHP ファイル アップロードのエンコード エラーを処理し、対応するエラー プロンプトを生成するためのヒント ファイルのアップロードは、Web アプリケーションを開発する際の非常に一般的な要件です。 PHP ファイルのアップロードを処理するときに、エンコード エラーが頻繁に発生します。この記事では、PHP ファイルのアップロードのエンコード エラーを処理し、対応するエラー プロンプトを生成するためのいくつかのテクニックを紹介します。 PHP では、ファイルのアップロードには $_FILES グローバル変数を介してアクセスします。 $_FILES を通じて、アップロードされたファイルの名前、サイズ、一時ファイルのパス、その他の情報を取得できます。

See all articles