Web アプリケーションの開発では、SQL インジェクション攻撃を防ぐことが重要です。 addslashes() は文字をエスケープするためによく使用される関数ですが、特定のシナリオでは不十分です。 mysql_real_escape_string() 関数は特にこれらの制限に対処し、SQL インジェクション保護を強化します。
mysql_real_escape_string() は、より広範囲の文字 (x00、n、r、、、'、") をエスケープします。 、x1a) と比較して、addslashes() は 3 文字 (' および NUL) のみをエスケープします。この包括的なカバレッジにより、SQL インジェクションに悪用される可能性のある文字が適切にエスケープされ、脆弱性が最小限に抑えられます。 addslashes() の脆弱性
例:
ユーザー入力が "John' OR 1='1" の場合、addlashes() は一重引用符 (') のみをエスケープし、次の SQL ステートメントになります:<code class="php">$username = addslashes($_POST['username']); $sql = "SELECT * FROM users WHERE username='$username'";</code>
<code class="sql">SELECT * FROM users WHERE username='John\' OR 1=\'1\'</code>
結論
以上がmysql_real_escape_string() と addslashes(): どちらのエスケープ関数がより優れた SQL インジェクション保護を提供しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。