LoginSignup
32
31

More than 5 years have passed since last update.

危険なWordPressプラグインの作り方

Last updated at Posted at 2017-03-24
1 / 15

危険なWordPressプラグインの作り方

WordBench東京 3月勉強会「WordPress プラグイン祭り」の発表資料です。


WordPressプラグインの脆弱性の分類

〜Sucuriブログからの抜粋を添えて


SQLインジェクション

  • $wpdb の間違った使い方により発生。外部からデータベースから自由に情報が取り出せたり、変更できたり
  • 結果、ログインパスワードのハッシュが窃取されるなどの被害が起こる

クロスサイトスクリプティング

  • Javascript を含んだ文字列が画面に表示されてしまうバグ。ログイン中の管理者のブラウザをJavascriptで操って不正な操作を行わせたり、Cookie情報を盗んだり

バックドア


ローカルファイルインクルージョン

  • 攻撃者が wp-config.php など重要なサーバー上のファイルの内容を読めてしまう

権限昇格


対策


そもそも、危険なことをしない

  • m9( ゚Д゚) <その処理、あなたのプラグインで本当に必要不可欠ですか?
    • SQLの実行が本当に必要?
    • 本当にサーバーにファイルを作成する必要がある?
    • 本当に任意のコードを実行する必要がある?
    • 本当にファイルをインクルードする必要がある?
    • 管理者にしかできてはいけない操作を、わざわざプラグインからできるようにする必要がある?

危険なことをするときは、危険なことをしてるという自覚を持つ

  • 危険なものはちゃんとチェックする
    • $wpdb->prepare()
    • validate_file()
    • $_GET, $_POST, $_REQUEST
  • ユーザーは信頼しない、自分も信頼しない

危険なプラグインの作り方

  • 横着する、これに尽きる
    • APIで実現可能なのに面倒だからSQLでやっちゃう
    • 必須でもないのに、ちょっとしたログや一時データの保管に、面倒だからファイルを作っちゃう
    • update_option() の第1引数を動的にしちゃう
    • require() fwrite() の対象を動的にしちゃう
    • エスケープせずに画面に表示しちゃう

危険なプラグインを作っていませんか?

自己チェックに便利なツールを開発しました!

インストール方法

git clone https://github.com/hissy/php-code-scanner.git
composer install

実行方法

bin/console wp-code-scanner /path/to/your-plugin

最後に宣伝:WordPress の解説書を執筆しました

エンジニアのためのWordPress開発入門

  • WordPress を知らないエンジニアが初めて WordPress に触れたとき、戸惑わないための本
  • 絶賛発売中! → Amazon
  • 著者:野島 祐慈、菱川 拓郎、杉田 知至、細谷 崇、枢木 くっくる

エンジニアのためのWordPress開発入門


もひとつ宣伝

コンクリートファイブジャパン株式会社では、案件増加、事業拡大につき絶賛新規採用募集中!
未経験可

  • ディレクター
  • PHPエンジニア
  • インフラエンジニア

詳細は懇親会で!

32
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
31