web-dev-qa-db-ja.com

WordPress開発におけるデータのサニタイズの責任者は誰ですか?

必要に応じて検証、サニタイズ、データエスケープを実装することで、より安全なWordPressコードを書く方法を研究しています。検証とエスケープは完全に理にかなっていますが、私はサニタイズについて少し混乱しています。

add_post_metaのような関数を使用する場合、この関数は私にとってサニタイズを行いますか?データベースと対話するset_optionやその他のものはどうでしょうか。私は通常これらの機能を介してデータベースと対話します。どのような状況で、私は自分自身で消毒を心配する必要がありますか?

1
Mauro Bringolf

はい。WordPressは、APIを使用している限り、データベースへの転送中にデータをサニタイズします。

wpdbオブジェクトを使用している場合はサニタイズするためにprepareメソッドを使用する必要があります。オブジェクトキャッシュなどをバイパスするのでSQLクエリを書くことはお勧めしませんが、あなた自身のSQLを書く必要がある場合は、それを準備して実行するためにwpdbを使用してください。

WP_Queryget_postsadd_post_metaなどのような呼び出しに対しては、消毒が行われます。

これは純粋にDBのサニタイズ、末尾のスペースの削除、URLのバリデーション、タグの削除、エスケープなどの追加のサニタイズまたは検証がすべてコード内で行われる必要があることに注意

3
Tom J Nowell