このガイドでは、一重引用符を含むテキストを PostgreSQL 文字列に挿入し、SQL インジェクションの脆弱性のリスクを最小限に抑える安全な方法について詳しく説明します。
単純なテキストの場合は、一重引用符を二重引用符で囲むか ('user''s log'
)、バックスラッシュを使用してエスケープします (E'user\'s log'
)。
複数レベルのエスケープを必要とする複雑なテキストの場合、ドル引用符で囲まれた文字列がよりクリーンなソリューションを提供します。
$$escape ' with ''$$
$token$escape ' with ''$token$
(token
を一意の識別子に置き換えます)PostgreSQL は安全な文字列処理のための専用関数を提供します。
quote_literal()
: この関数は一重引用符を自動的にエスケープし、安全な挿入を保証します。format()
: %L
形式指定子を使用して、文字列 (format('%L', string_var)
) を正しく引用符で囲みます。一重引用符の処理には concat()
または concat_ws()
を使用しないでください。これらの関数は適切なエスケープを提供しないためです。
これらの引用テクニックを使用した場合でも、SQL インジェクション攻撃を防ぐためには、プリペアド ステートメントまたはパラメーター化されたクエリの使用が引き続き重要であることに注意してください。 これらの方法は、このような脆弱性に対する最も強力な防御策です。
以上がPostgreSQL 文字列に一重引用符を安全に挿入する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。