違いを理解する: mysql_real_escape_string() とaddslashes()
mysql_real_escape_string() とaddslashes() は両方とも特殊文字列をエスケープするために使用されます。 SQL インジェクション攻撃を防ぐために文字列内の文字を追加する必要がありますが、2 つの関数には重要な違いがあります。
mysql_real_escape_string()
この関数は MySQL データベース用に特別に設計されており、文字列にスラッシュを追加します。次の文字:
addslashes()
一方、addslashes() は 3 つの文字にスラッシュを追加するだけです:
セキュリティへの影響
addslashes() のみに依存する Web アプリケーション入力検証は依然として SQL インジェクション攻撃に対して脆弱である可能性があります。これは、addslashes() がインジェクション攻撃で使用される可能性のあるすべての文字、つまり、
推奨事項
セキュリティを最適化するには、mysql_real_escape_string() とaddslashes() の両方の使用を避け、代わりにパラメータ化されたクエリまたは準備されたクエリを使用することをお勧めします。発言。これらのメソッドを使用すると、手動エスケープを必要とせずにユーザー入力をクエリにバインドできるため、より安全で効率的です。
以上がmysql_real_escape_string() と addslashes() は SQL インジェクションの防止において同等ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。