ホームページ  >  記事  >  バックエンド開発  >  SQL インジェクションとの戦いにおいて、mysql_real_escape_string() はどのように addslashes() を上回るのでしょうか?

SQL インジェクションとの戦いにおいて、mysql_real_escape_string() はどのように addslashes() を上回るのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-21 13:20:31911ブラウズ

How Does mysql_real_escape_string() Surpass addslashes() in Combatting SQL Injection?

addslashes() を超えた mysql_real_escape_string() の特徴的な機能を明らかにする

addslashes() は特殊文字をエスケープする目的は果たしますが、特殊文字に対する包括的な保護を提供するには不十分です。 SQL インジェクション攻撃。対照的に、mysql_real_escape_string() は、より広範な問題のある文字に対処することによって強化されたセキュリティを提供します。

具体的には、mysql_real_escape_string() は次の文字にスラッシュを追加します。

\x00, \n, \r, \, ', " and \x1a.

この強化された文字セットにより、 addslashes() のように一重引用符と二重引用符がエスケープされるだけでなく、他の潜在的に悪意のある文字も無効化されます。

この違いを説明するために、次の例を考えてみましょう。

$string = "' OR 1=1";

$addslashes_example = addslashes($string); // Escapes only single and double quotes
$mysql_rescape_example = mysql_real_escape_string($string); // Escapes single, double, and \x1a characters

echo $addslashes_example; // Outputs: \' OR 1=1
echo $mysql_rescape_example; // Outputs: \' OR 1=1\'

実証されているように、mysql_real_escape_string() は巧妙に細工された SQL インジェクション攻撃の実行を防止することでより堅牢な保護を提供しますが、addlashes() はシステムを脆弱なままにしておきます。 mysql_real_escape_string() と addslashes() の両方が非推奨となり、使用が推奨されなくなったことを認識することが重要です。代わりに、安全かつ効率的なデータベース対話のためにパラメータ化されたクエリを採用する必要があります。

以上がSQL インジェクションとの戦いにおいて、mysql_real_escape_string() はどのように addslashes() を上回るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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