ホームページ > データベース > mysql チュートリアル > MySQL データベースのサニタイズには、addslashes と mysql_real_escape_string のどちらが適していますか?

MySQL データベースのサニタイズには、addslashes と mysql_real_escape_string のどちらが適していますか?

Susan Sarandon
リリース: 2024-11-15 13:37:02
オリジナル
572 人が閲覧しました

Which is Better for MySQL Database Sanitization: addslashes or mysql_real_escape_string?

データベースのサニタイズのための mysql_real_escape_string と addslashes の比較

PHP では、addslashes と mysql_real_escape_string は、データをデータをサニタイズする前にデータをサニタイズするために一般的に使用される 2 つの関数です。データベースを使用して SQL インジェクションの脆弱性を防止します。どちらの関数もデータ内の特殊文字をエスケープすることを目的としていますが、エスケープする特定の文字とその使用目的が異なります。

機能の比較

addslashes は主に次のものをエスケープします。文字:

  • 一重引用符 (')
  • 二重引用符 (")
  • バックスラッシュ ()
  • ヌル文字 (NULL バイト)

一方、mysql_real_escape_string は、アッドスラッシュで覆われた文字をエスケープするだけでなく、次の文字もエスケープします:

  • 改行 (LF)
  • キャリッジ リターン ( CR)
  • Control-Z (EOF)

mysql_real_escape_string 内の追加のエスケープ文字の重要性

mysql_real_escape_string によってエスケープされた追加の文字は重要ですたとえば、改行や復帰はクエリの構造を壊し、Ctrl+Z が途中で入力ストリームの終了を引き起こし、データの切り捨てやエラーを引き起こす可能性があるためです。

使用目的

mysql_real_escape_string は、MySQL データベースに送信する前にデータをエスケープするために特別に設計されています。これは、MySQL のエスケープ要件を考慮し、MySQL クエリでの挿入または操作のためにデータが適切にフォーマットされていることを保証します。一方、

addslashes は、一般的に使用される文字をエスケープする、より汎用的な関数です。 HTML や JavaScript などのさまざまなコンテキストで。これはデータベースのサニタイズに使用できますが、使用されているデータベースに addslashes でカバーされない特定のエスケープ要件がある場合は十分ではない可能性があります。

結論

場合MySQL データベースを扱う場合、データのサニタイズには addslashes ではなく mysql_real_escape_string を使用することをお勧めします。 mysql_real_escape_string は、MySQL の特定の要件を満たす、より包括的なレベルのエスケープを提供し、データのセキュリティと整合性を確保します。

以上がMySQL データベースのサニタイズには、addslashes と mysql_real_escape_string のどちらが適していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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