http://www.checkmarx.com/wp-content/uploads/2013/06/The-Security-State-of-WordPress-Top-50-Plugins.pdfで、WordPress 人気 50 プラグインの中に脆弱性があるプラグインがある、と報告されています。
いくつかのプラグインに、脆弱性が報告されています。SQLインジェクション、XSS(クロスサイトスクリプティング)、CSRF(クロスサイトリクエストフォージェリ)、PT(パス遡り)、RFI(外部ファイル混入)です。
SQLインジェクションについては、プリペアドステートメントを使うことでほぼ防げます。ORマッパーを自作する、とかでない限り、プリペアドステートメントを使う、で十分でしょう。WordPress カスタマイズでは、wp_insert_postを使う方法がありますし、動的プレースホルダも用意されています。独自テーブルを作って処理する、とかで無い限り、プリペアドステートメントをきちんと使う、で十分でしょう。
CSRF は、WordPress では管理画面を作るときに使う Settings APIを用いることで、トークン生成&チェックを行います。Settings API を使えば、うっかりミスで CSRF 脆弱性を作ることはまずないでしょう。
XSS については、決定打となる対策がとりにくい(ブログの投稿でHTMLを全く認めない、というのは難しい)ので、この脆弱性があるプラグインは存在するだろうと思いました。SQLインジェクションや CSRF 脆弱性のあるプラグインがこんなにある、というのは驚きました。
使う側としては、ざっとでも良いのでソースコードを読む、というのが大事ですね。公式にあるプラグインなら、難読化や暗号化はされていないので、その点は安心です。しかし、公式にあるからといって、セキュリティ上の問題が無いとは限りません。
WordPress 本体のダウンロード数と比較すると、プラグインのダウンロード数は、ぐっと少ないです。人気のプラグインであっても、WordPress 本体とは比べ物になりません。利用者が少なければコードをチェックする人も少ないですから、プラグインを使う場合は慎重に検討する必要があります。
[…] WordPress 人気 50 プラグインの脆弱性 […]