ホームページ バックエンド開発 PHPの問題 PHP エスケープはどのように実装されますか?

PHP エスケープはどのように実装されますか?

Apr 05, 2023 pm 02:34 PM

エスケープとは、プログラム内の特殊文字をマシンが認識できる形式に変換することを指します。 PHP にもこのようなエスケープは存在します。 PHP エスケープは、文字の前にバックスラッシュ「\」を追加することで実行されます。たとえば、二重引用符 (") をエスケープするには、次のように記述できます:

echo "She said \"Hello\"";
ログイン後にコピー

これは画面に出力されます: 彼女は「こんにちは」と言った。

PHP では、エスケープ文字が必要です。エスケープする必要がある一般的な文字とそのエスケープ文字を次に示します:

#エスケープする必要がある文字エスケープ文字一重引用符\'二重引用符\ "バックスラッシュ\改行\n中字戻り文字 #\r水平タブ文字 #\t
失敗エスケープすると、構文エラーまたはプログラム エラーが発生します。

データベースを使用する場合はエスケープも必要です。エスケープしないと、ユーザーがデータベースに悪意のあるコードを挿入し、システムが攻撃される可能性があります。 PHP には、エスケープ用の 2 つの関数、mysqli_real_escape_string() とaddslashes() が用意されています。

mysqli_real_escape_string() 関数は、PHP が提供する MySQL エスケープ関数であり、互換性が高く、複数の文字セットをサポートしています。 addslashes() 関数は PHP の組み込み関数であり、エスケープ文字は固定されており、文字セット ISO-8859-1 の文字列のみをサポートします。

以下は、mysqli_real_escape_string() 関数の使用例です:

$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$name = mysqli_real_escape_string($mysqli, $_POST['name']);
$email = mysqli_real_escape_string($mysqli, $_POST['email']);
$message = mysqli_real_escape_string($mysqli, $_POST['message']);

$query = "INSERT INTO messages (name, email, message) VALUES ('$name', '$email', '$message')";

$result = $mysqli->query($query);

if ($result === TRUE) {
    echo "Message sent successfully";
} else {
    echo "Error: " . $mysqli->error;
}

$mysqli->close();
ログイン後にコピー
上の例では、mysqli_real_escape_string() 関数を使用して、ユーザーが入力した名前、電子メール、およびメッセージをエスケープします。 SQL インジェクション攻撃を回避するため。

MySQL に加えて、他のデータベースもエスケープする必要があります。データベースごとにエスケープ方法が異なるため、特定の状況に応じて適切なエスケープ関数を選択する必要があります。

要約すると、エスケープは安全な PHP プログラムを作成する上で重要な部分であり、慎重に使用する必要があります。文字を出力するとき、またはデータベースにデータを挿入するときはエスケープが必要です。エスケープ文字の欠落を避けるために、エスケープには mysqli_real_escape_string() 関数を使用することをお勧めします。

以上がPHP エスケープはどのように実装されますか?の詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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