WordPressのテーマやプラグインを開発、カスタマイズする際には、脆弱性を生まないよう、セキュリティ対策を十分に考慮する必要があります。
CSRF対策
管理画面内外を問わず、WordPressにリクエストを送信するフォームや、データを更新するAJAXを実装する場合には、CSRF対策を施しましょう。
リクエストを送信する画面もしくはAJAXリクエスト処理の中で、簡易的なnonceデータを生成するwp_create_nonce() または wp_nonce_field() を用いて、リクエストとともにnonceデータを送信します。
リクエストを処理する側で、wp_verify_nonce() を用いて値をチェックし、false が返った場合には処理を中断しましょう。
上記の関数が生成するnonceは完全なワンタイムではないため、できる限り一意なものにするため、フォーム、ページごとに異なる $action パラメータを指定するのがベストです。
また基本的なことですが、WordPress管理画面内のみで実行する処理には、is_admin() や is_user_logged_in() などによる検証を入れましょう。
XSS対策
WordPressにユーザーが投稿やコメントなどのコンテンツを投稿できる機能を実装する場合には、XSS対策が必要です。
リクエストを処理する側または出力する側で適切に値のサニタイズを行いましょう。
PHP標準の htmlspecialchars() や strip_tags() を用いても良いですが、WordPressには esc_html() や wp_kses() など、用途に応じた各種のデータ検証・無害化用関数が用意されています。
SQLインジェクション対策
WordPressのデータの取得したり更新する際には、極力直接SQLを発行することは避けましょう。
特別な理由がない限りは、WP_Queryクラス等のオブジェクトを使用したり、wp_insert_post()、update_post_meta()、update_option() 等の関数を使用するのが最善です。
SQLを記述せざるを得ない場合でも、wpdb オブジェクトを用い、特にユーザーの入力値やDBからの取得値をSQLに使用する場合には、wpdb->prepare() メソッドを用いて値をエスケープしましょう。