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

Barbara Streisand
リリース: 2024-10-21 13:20:31
オリジナル
1017 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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