国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
1.アップロードソースとファイルの種類(lèi)を確認(rèn)します
2。ファイル名とストレージパスを制御します
3.サーバーとPHPのセキュリティ制限を設(shè)定します
4。寫(xiě)真などのメディアファイルの二次処理
ホームページ バックエンド開(kāi)発 PHPチュートリアル ファイルアップロードをPHPで安全に処理する方法は?

ファイルアップロードをPHPで安全に処理する方法は?

Jul 08, 2025 am 02:37 AM
php ファイルのアップロード

PHPファイルのアップロードを安全に処理するには、ソースとタイプを確認(rèn)し、ファイル名とパスを制御し、サーバーの制限を設(shè)定し、メディアファイルを2回プロセスする必要があります。 1.トークンを介してCSRFを防ぐためにアップロードソースを確認(rèn)し、ホワイトリストコントロールを使用してFINFO_FILEを介して実際のMIMEタイプを検出します。 2。ファイルをランダムな文字列に変更し、検出タイプに従って非WEBディレクトリに保存する拡張機(jī)能を決定します。 3。PHP構(gòu)成は、アップロードサイズを制限し、一時(shí)的なディレクトリnginx/apacheはアップロードディレクトリへのアクセスを禁止します。 4. GDライブラリは寫(xiě)真を再利用して、潛在的な悪意のあるデータをクリアします。

ファイルアップロードをPHPで安全に処理する方法は?

ファイルのアップロードは、多くのPHPアプリケーションで一般的な機(jī)能ですが、誤って処理すると、セキュリティリスクを簡(jiǎn)単にもたらす可能性があります。最も直接的な問(wèn)題は、ユーザーによってアップロードされたファイルに悪意のあるコードが含まれる場(chǎng)合があります。したがって、ファイルアップロードセキュリティを確保するコアは、検証、制限、分離にあります。

ファイルアップロードをPHPで安全に処理する方法は?

以下は、いくつかの実際のシナリオに基づいており、PHPでファイルアップロードを安全に処理する方法について説明しています。


1.アップロードソースとファイルの種類(lèi)を確認(rèn)します

まず、アップロード要求が実際には、他の人によるリクエストではなく、あなた自身のフォームからであることを確認(rèn)してください。 $_SERVER['HTTP_REFERER'] (完全に信頼できるわけではありませんが)をチェックするか、1回限りのトークンを使用して、CSRF攻撃を防ぐことができます。

ファイルアップロードをPHPで安全に処理する方法は?

第二に、ファイルの種類(lèi)を判斷するためにクライアントだけに頼らないでください。ブラウザがアップロードされるときにMIMEタイプが提供されますが、これは偽造できます。 PHPはmime_content_type()またはfinfo_file()を提供して、実際のファイルタイプを読み取ります。

 $ finfo = finfo_open(fileinfo_mime_type);
$ mime = finfo_file($ finfo、$ _files ['file'] ['tmp_name']);

次のようなホワイトリスト制御許容タイプをお?jiǎng)幛幛筏蓼埂?

ファイルアップロードをPHPで安全に処理する方法は?
  • 畫(huà)像カテゴリ: image/jpegimage/png
  • ドキュメントクラス: application/pdfなど。

ブラックリストの方法は、新しい攻撃方法が欠けている傾向があり、推奨されません。


2。ファイル名とストレージパスを制御します

ユーザーが直接アップロードしたファイル名を使用しないでください。特別な文字や非表示の構(gòu)造があるため、寫(xiě)真を裝っている.phpファイルなどです。

方法は非常に単純です:

  • ファイルmd5(uniqid()) . '.jpg'
  • 元のファイル拡張機(jī)能を信頼しないでください、実際のタイプの検出によって接尾辭を決定します

さらに、アップロードディレクトリをWebアクセスパスの下に配置しないでください。たとえば、Webサイトルートディレクトリのuploads/ディレクトリの代わりにファイルを/var/www/uploads/ file rootディレクトリで保存するため、実行可能なスクリプトがアップロードされても、直接アクセスして実行できません。


3.サーバーとPHPのセキュリティ制限を設(shè)定します

PHPには、 php.iniに設(shè)定されたアップロード関連の構(gòu)成アイテムが付屬しています。

  • upload_max_filesizeおよびpost_max_size :最大アップロードサイズを制御します
  • file_uploads :アップロードを許可するかどうか
  • upload_tmp_dir :一時(shí)的なディレクトリ、できれば非webパスに設(shè)定

nginxなど、apache/nginxレベルも制限できます。

場(chǎng)所 /アップロード / {
    すべてを否定します。
}

これにより、ユーザーはアップロードされたディレクトリ內(nèi)のコンテンツに直接アクセスできなくなります。

また、スクリプトの実行を禁止するために、 .htaccess (apache)をアップロードディレクトリに追加することを検討することもできます。

 options -execcgi -indexes
addhandler cgi-script .php .php3 .pl .py .jsp .asp

4。寫(xiě)真などのメディアファイルの二次処理

アプリが畫(huà)像のアップロードを受け入れる場(chǎng)合、追加のセキュリティ尺度は、これらの畫(huà)像を処理することです。

  • GDまたはImagicickで畫(huà)像を開(kāi)き、もう一度保存します
  • これにより、寫(xiě)真に埋め込まれた悪意のあるデータをクリアできます(Exif情報(bào)によって伝達(dá)されるスクリプトなど)

サンプルコードスニペット:

 $ image = imagecreatefromjpeg($ _ files ['file'] ['tmp_name']);
ImageJpeg($ image、 'new_image.jpg');
Imagedestroy($ image);

すべての攻撃を完全に排除することはできませんが、セキュリティを効果的に改善できます。


基本的にそれだけです。重要なポイントは、まだ同じ古いことわざです:ユーザーの入力を決して信用しないでください。アップロード機(jī)能は一般的ですが、注意しないとバックドアエントリになります。検証、許可の制限、環(huán)境の分離の良い仕事をしていることによってのみ、リスクを本當(dāng)に減らすことができます。

以上がファイルアップロードをPHPで安全に処理する方法は?の詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見(jiàn)つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫(huà)像を無(wú)料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫(xiě)真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫(xiě)真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類(lèi)リムーバー

Video Face Swap

Video Face Swap

完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開(kāi)発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開(kāi)発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPバージョンをアップグレードする方法は? PHPバージョンをアップグレードする方法は? Jun 27, 2025 am 02:14 AM

PHPバージョンのアップグレードは実際には難しくありませんが、鍵は操作手順と予防策にあります。以下は特定の方法です。1。現(xiàn)在のPHPバージョンと実行環(huán)境を確認(rèn)し、コマンドラインまたはPHPINFO.PHPファイルを使用して表示します。 2。適切な新しいバージョンを選択してインストールします。 8.2または8.1でインストールすることをお?jiǎng)幛幛筏蓼埂?Linuxユーザーはパッケージマネージャーを使用し、MacOSユーザーはHomeBrewを使用します。 3.構(gòu)成ファイルと拡張機(jī)能を移行し、php.iniを更新し、必要な拡張機(jī)能をインストールします。 4.ウェブサイトが正常に実行されているかどうかをテストするには、エラーログを確認(rèn)して、互換性の問(wèn)題がないことを確認(rèn)してください。これらの手順に従うと、ほとんどの狀況でアップグレードを正常に完了できます。

PHPでのクロスサイトリクエスト偽造(CSRF)攻撃を防ぐにはどうすればよいですか? PHPでのクロスサイトリクエスト偽造(CSRF)攻撃を防ぐにはどうすればよいですか? Jun 28, 2025 am 02:25 AM

topreventcsrfattacksinphp、demifficanti-csrftokens.1)生成と測(cè)定と測(cè)定を繰り返し、orbin2hex(random_bytes(32))、savethemin $ _ session、andincludeTheminformsashdidnputs.2)

PHP初心者ガイド:ローカル環(huán)境構(gòu)成の詳細(xì)な説明 PHP初心者ガイド:ローカル環(huán)境構(gòu)成の詳細(xì)な説明 Jun 27, 2025 am 02:09 AM

PHP開(kāi)発環(huán)境をセットアップするには、適切なツールを選択し、構(gòu)成を正しくインストールする必要があります。 phpの最も基本的なPHPローカル環(huán)境には、3つのコンポーネントが必要です。Webサーバー(ApacheまたはNginx)、PHP自體、およびデータベース(MySQL/Mariadbなど)。 biter初心者は、インストールプロセスを簡(jiǎn)素化するXAMPPやMAMPなどの統(tǒng)合パッケージを使用することをお?jiǎng)幛幛筏蓼埂?XAMPPは、WindowsとMacOSに適しています。インストール後、プロジェクトファイルはHTDOCSディレクトリに配置され、LocalHostからアクセスされます。 mampはMacユーザーに適しており、PHPバージョンの便利なスイッチングをサポートしていますが、無(wú)料版の機(jī)能は限られています。 Advanced Advancedユーザーは、Macos/LinuxシステムでHomebrewによって手動(dòng)でそれらをインストールできます

2つのPHPアレイを組み合わせる方法ユニークな値は? 2つのPHPアレイを組み合わせる方法ユニークな値は? Jul 02, 2025 pm 05:18 PM

2つのPHPアレイをマージし、一意の値を保持するには、2つの主要な方法があります。 1.インデックスアレイまたは重複排除のみの場(chǎng)合、array_mergeとarray_uniqueの組み合わせを使用します:最初のマージArray_merge($ array1、$ array2)を使用してから、array_unique()を使用して、最終的にすべての一意の値を含む新しいアレイを取得します。 2。関連アレイと最初の配列のキー値のペアを保持したい場(chǎng)合は、演算子を使用してください。$ result = $ array1 $ array2。これらの2つの方法は、キー名が保持されているか焦點(diǎn)があるかに応じて、異なるシナリオに適用できます。

PHP出口機(jī)能の使用方法は? PHP出口機(jī)能の使用方法は? Jul 03, 2025 am 02:15 AM

Exit()は、すぐにスクリプトの実行を終了するために使用されるPHPの関數(shù)です。一般的な用途には次のものが含まれます。1。ファイルが存在しない、または検証が失敗するなど、例外が検出されたときにスクリプトを事前に終了します。 2。デバッグ中の出力中間結(jié)果と実行を停止します。 3。Header()と組み合わせてリダイレクトした後、Exit()を呼び出して、後続のコード実行を防ぎます。さらに、exit()は、文字列パラメーターを出力コンテンツまたはステータスコードとして整數(shù)として受け入れることができ、そのエイリアスはdie()です。

HTMLで記事、セクション、および脇にセマンティック構(gòu)造を適用する HTMLで記事、セクション、および脇にセマンティック構(gòu)造を適用する Jul 05, 2025 am 02:03 AM

HTMLでのセマンティックタグの合理的な使用は、ページ構(gòu)造の明確さ、アクセシビリティ、SEO効果を改善することができます。 1.ブログの投稿やコメントなどの獨(dú)立したコンテンツブロックに使用されると、自己完結(jié)型でなければなりません。 2。通常はタイトルを含む分類(lèi)関連のコンテンツに使用され、ページのさまざまなモジュールに適しています。 3。サイドバーの推奨事項(xiàng)や著者プロファイルなど、メインコンテンツに関連する補(bǔ)助情報(bào)に使用されますが、コアではありません。実際の開(kāi)発では、ラベルを組み合わせて、その他を組み合わせ、過(guò)度のネストを避け、構(gòu)造をシンプルに保ち、開(kāi)発者ツールを使用して構(gòu)造の合理性を検証する必要があります。

PHPのセッションデータにアクセスするにはどうすればよいですか? PHPのセッションデータにアクセスするにはどうすればよいですか? Jun 30, 2025 am 01:33 AM

PHPのセッションデータにアクセスするには、最初にセッションを開(kāi)始し、次に$ _Session HyperGlobal Arrayを介して動(dòng)作する必要があります。 1。セッションはsession_start()を使用して開(kāi)始する必要があり、出力の前に関數(shù)を呼び出す必要があります。 2。セッションデータにアクセスするときは、キーが存在するかどうかを確認(rèn)します。 ISSET($ _ Session ['key'])またはarray_key_exists( 'key'、$ _ session)を使用できます。 3.セッション変數(shù)を設(shè)定または更新する必要は、手動(dòng)で保存せずに$ _Sessionアレイに値を割り當(dāng)てるだけです。 4. unset($ _ session ['key'])を使用した特定のデータをクリアし、すべてのデータをクリアし、空の配列に$ _sessionを設(shè)定します。

PHPの再帰機(jī)能とは何ですか? PHPの再帰機(jī)能とは何ですか? Jun 29, 2025 am 02:02 AM

再帰関數(shù)は、PHPのセルフコール関數(shù)を指します。コア要素は1です。終了條件(基本例)の定義、2。問(wèn)題を分解し、再帰的に呼び出す(再帰的な例)。階層構(gòu)造を扱う、重複したサブ問(wèn)題の分解、または計(jì)算の要因、走査ディレクトリなどのコード読みやすさの改善に適しています。ただし、メモリ消費(fèi)とスタックオーバーフローのリスクに注意を払う必要があります。書(shū)くときは、出口條件を明確にする必要があり、基本的な例に徐々にアプローチし、冗長(zhǎng)パラメーターを避け、小さな入力をテストする必要があります。たとえば、ディレクトリをスキャンすると、関數(shù)はサブディレクトリに遭遇し、すべてのレベルが橫斷されるまで再帰的に呼び出します。

See all articles