データベースのサニタイズのための mysql_real_escape_string と addslashes の比較
PHP では、addslashes と mysql_real_escape_string は、データをデータをサニタイズする前にデータをサニタイズするために一般的に使用される 2 つの関数です。データベースを使用して SQL インジェクションの脆弱性を防止します。どちらの関数もデータ内の特殊文字をエスケープすることを目的としていますが、エスケープする特定の文字とその使用目的が異なります。
機能の比較
addslashes は主に次のものをエスケープします。文字:
一方、mysql_real_escape_string は、アッドスラッシュで覆われた文字をエスケープするだけでなく、次の文字もエスケープします:
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 サイトの他の関連記事を参照してください。