現在の位置: ホーム> 最新記事一覧> PHP Webサイトが悪意のあるファイルのアップロードで攻撃されないようにする方法は?最良の保護方法と例

PHP Webサイトが悪意のあるファイルのアップロードで攻撃されないようにする方法は?最良の保護方法と例

M66 2025-07-03

PHP Webサイトが悪意のあるファイルのアップロードで攻撃されないようにする方法は?

インターネットの急速な発展により、ますます多くのWebサイトがPHPを開発言語として選択します。ただし、PHPのオープン性と柔軟性は、ハッカーのターゲットの1つでもあります。悪意のあるファイルアップロード攻撃は、攻撃する最も一般的な方法の1つです。ハッカーは、悪意のあるコードを含むファイルをアップロードすることにより、ユーザーからウェブサイトを制御するか、ユーザーから機密情報を盗むことができます。 PHP Webサイトのセキュリティを確保するために、この記事では、いくつかの効果的な保護方法とサンプルコードを紹介します。

ファイルの種類を確認してください

まず、アップロードされたファイルの種類を確認し、違法なファイルのアップロードを避けるためにアップロードできるファイルの種類を制限する必要があります。 PHPの$ _Files変数を使用すると、アップロードされたファイルのタイプを取得して、許可されたタイプと比較できます。簡単な例コードは次のとおりです。

<?php<br> $ AldoctTypes = array( &#39;image/jpeg&#39;、 &#39;image/png&#39;、 &#39;image/gif&#39;);<br> $ uploadedfiletype = $ _files [&#39;file&#39;] [&#39;type&#39;];<br> if(in_array($ uploadedfiletype、$ abationTypes)){<br> //ファイルアップロードロジックを処理し続けます<br>} それ以外 {<br> echo &#39;画像ファイルのみをアップロードする&#39;;<br> }<br> ?>

ファイルサイズを確認してください

ファイルタイプのチェックに加えて、アップロードされたファイルのサイズを制限する必要もあります。アップロードされたファイルのサイズを制限することにより、ハッカーはあまりにも大きなファイルのアップロード、サーバーリソースに影響を与える、または悪意のある操作の実行を防ぐことができます。対応するコードの例は次のとおりです。

<?php<br> $ maxfilesize = 1024 * 1024; // 1MBに制限します<br>$ uploadedFilesize = $ _files [&#39;file&#39;] [&#39;size&#39;];<br> if($ uploadedFilesize <= $ maxfilesize){<br> //ファイルアップロードロジックを処理し続けます<br>} それ以外 {<br> エコー「ファイルサイズのアップロードが制限を追い越しますえています」;<br> }<br> ?>

ファイル名とパスを変更します

悪意のあるファイルのアップロードを防ぎ、それらを実行するために、アップロードされたファイルの名前とパスを変更できます。ユーザーが直接アップロードした元のファイル名を使用する代わりに、タイムスタンプまたはランダム文字列を使用して、新しいファイル名を生成します。さらに、アップロードされたファイルへの直接アクセスを避けるために、アップロードされたファイルを非WEBルートディレクトリに保存することをお勧めします。以下は関連コードの例です。

<?php<br> $ uploadDirectory = &#39;/path/to/upload/folder/&#39;; //実際のアップロードファイルディレクトリに変更します<br>$ uploadedfilename = time()。 &#39;_&#39;。ランド(1000、9999)。 &#39;_&#39;。 $ _files [&#39;file&#39;] [&#39;name&#39;];<br> $ uploadedfilepath = $ uploaddirectory。 $ uploadedFileName;<br> if(move_uploaded_file($ _ files [&#39;file&#39;] [&#39;tmp_name&#39;]、$ uploadedfilepath){<br> //ファイルのアップロードが成功し、彼のビジネスロジックの処理を続けます<br>} それ以外 {<br> echo &#39;ファイルアップロードfailed&#39;;<br> }<br> ?>

ホワイトリストを作成します

ホワイトリストを作成して、ファイルをアップロードするように制限します。アップロード要求のIPアドレスをチェックし、ホワイトリストと一致させることにより、正当なユーザーのみがファイルをアップロードできるようにすることができます。以下は、関連するサンプルコードです。

<?php<br> $ Aldocatips = array( &#39;127.0.0.1&#39;、 &#39;192.168.0.1&#39;); //信頼できるIPアドレスに変更します<br>$ uploadedip = $ _server [&#39;remote_addr&#39;];<br> if(in_array($ uploadedip、$ abationip)){<br> //ファイルアップロードロジックを処理し続けます<br>} それ以外 {<br> エコー「ファイルをアップロードするライセンスなし」;<br> }<br> ?>

要約します

上記の測定により、PHP Webサイトは悪意のあるファイルアップロード攻撃を大幅に防ぐことができます。ただし、Webサイトのセキュリティは、継続的な更新と強化された保護対策を必要とする継続的なプロセスです。最新のPHPバージョンを使用し、アラートを維持するためのシステムの脆弱性に定期的にパッチを適用することは、ウェブサイトのセキュリティを確保するための重要な手順です。