ホームページ > バックエンド開発 > PHPの問題 > PHP を使用して画像のアップロード パスを非表示にする方法

PHP を使用して画像のアップロード パスを非表示にする方法

PHPz
リリース: 2023-04-06 11:20:01
オリジナル
832 人が閲覧しました

PHP は、さまざまな種類の Web アプリケーションの開発に使用される、広く使用されているプログラミング言語です。 Web 開発のプロセスでは、画像のアップロードが一般的な要件です。ただし、パスを公開するとハッカーに攻撃の機会を与える可能性があるため、画像をアップロードするときにパスを隠したい場合があります。この記事では、PHPを使って画像のアップロードパスを非表示にする方法を紹介します。

まず、ユーザーがアップロードする画像を選択できるようにする HTML フォームを作成する必要があります。 HTML フォームには通常、ユーザーがアップロードするファイルを選択できる「ファイル」タイプの入力ボックスなど、いくつかの要素があります。このフォームは、基本的な HTML コードを使用して作成できます:

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

この例では、HTML フォームの「action」属性を「upload.php」に設定します。これにより、PHP スクリプトにフォームをアップロードするように指示されます。データ 「upload.php」という名前のスクリプト ハンドラーに送信されます。

次に、「upload.php」スクリプトに画像アップロード機能を実装する必要があります。 PHP の「move_uploaded_file」関数を使用して、アップロードされたファイルを指定したディレクトリに移動します。その前に、PHP の「uniqid」関数を使用して、アップロードされたファイルの一意のファイル名を生成できます。これは単純なサンプル コードです:

<?php
  $target_dir = "uploads/";
  $target_file = $target_dir . uniqid() . basename($_FILES["image"]["name"]);
  move_uploaded_file($_FILES["image"]["tmp_name"], $target_file);
  echo "The file has been uploaded.";
?>
ログイン後にコピー

この例では、アップロードされたファイルを「uploads」ディレクトリに移動します。ファイル名は一意の文字列になり、サフィックスは保持されます。これにより、ファイル名が一意になることが保証されます。この例では、「echo」ステートメントを使用してアップロード成功メッセージを出力していることに注意してください。さらに対話が必要な場合は、別のページに送信できます。

ただし、ここにはいくつかのリスクもあります。デフォルトでは、ユーザーはページのソース コードを表示するか、ブラウザに画像パスを入力することで画像パスにアクセスできます。この問題を解決するには、画像を Web ディレクトリの外部の場所に保存し、PHP で読み取ることができます。

PHP の「file_get_contents」関数を使用してファイルを読み取り、PHP の「header」関数を使用して Content-Type ヘッダーを設定できます。以下は編集したコードです。

<?php
  $file_path = "uploads/" . uniqid() . basename($_FILES["image"]["name"]);
  move_uploaded_file($_FILES["image"]["tmp_name"], $file_path);
  header(&#39;Content-Type: &#39;. mime_content_type($file_path));
  echo file_get_contents($file_path);
  unlink($file_path);
?>
ログイン後にコピー

この例では、ファイル名を一意の文字列に設定し、「uploads」ディレクトリに保存します。次に、PHP の「header」関数を使用して Content-Type ヘッダーを設定し、PHP の「file_get_contents」関数を使用してファイルの内容を読み取ります。最後に、PHP の「リンク解除」機能を使用してファイルを削除します。 PHPではTMPファイル名を使用しているため、ファイルを削除してもブラウザに影響はありません。

要約すると、PHP で画像のアップロード パスを非表示にすることは、アプリケーションを攻撃から保護するのに役立つ非常に重要なセキュリティ対策です。上記の手法を使用すると、イメージ パスを簡単に非表示にして、Web アプリケーションをハッカーから保護できます。

以上がPHP を使用して画像のアップロード パスを非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート