SQLインジェクションとは
SQLインジェクションとは、SQL文のパラメータを外部の人が自由に書き換えて、データベースに不正なアクセスをすること。
この対策として、何もやらないのは良くないと思ったので、とりあえず対策としては十分ではないのですが、パラメータをエスケープする方法をハックに残します。
SELECT post_title FROM $wpdb->posts WHERE post_type = 'hoge' AND ID = 1
以上のようなSQL文では、パラメータはhogeと1の二つあります。これをprepareという関数を利用してエスケープします。
// パラメータのエスケープ(数字は%d 文字列は%s) $escape_info = array('hoge',1); $wpdb->prepare(" SELECT post_title FROM $wpdb->posts WHERE post_type = %s AND ID = %d", $escape_info);