必要に応じて検証、サニタイズ、データエスケープを実装することで、より安全なWordPressコードを書く方法を研究しています。検証とエスケープは完全に理にかなっていますが、私はサニタイズについて少し混乱しています。
add_post_meta
のような関数を使用する場合、この関数は私にとってサニタイズを行いますか?データベースと対話するset_option
やその他のものはどうでしょうか。私は通常これらの機能を介してデータベースと対話します。どのような状況で、私は自分自身で消毒を心配する必要がありますか?
はい。WordPressは、APIを使用している限り、データベースへの転送中にデータをサニタイズします。
wpdb
オブジェクトを使用している場合はサニタイズするためにprepare
メソッドを使用する必要があります。オブジェクトキャッシュなどをバイパスするのでSQLクエリを書くことはお勧めしませんが、あなた自身のSQLを書く必要がある場合は、それを準備して実行するためにwpdb
を使用してください。
WP_Query
、get_posts
、add_post_meta
などのような呼び出しに対しては、消毒が行われます。
これは純粋にDBのサニタイズ、末尾のスペースの削除、URLのバリデーション、タグの削除、エスケープなどの追加のサニタイズまたは検証がすべてコード内で行われる必要があることに注意