WordPressのWAFプラグインの軽いパフォーマンス比較

パフォーマンス計測方法

wgetでトップページから1階層リンクをたどるという雑な方法で。

wget -r https://higelog.brassworks.jp/ -l 1
  • リクエスト回数の合計は67回
  • 3回試行
  • いずれのプラグインを利用した場合でもCPU負荷70%idle、ロードアベレージ0.6くらいであまり変わらない
  • ページにアクセスした際にCSSや画像がDLされてないので実際のリクエストとは違う
  • サーバー側のキャッシュは無効な状態

結果

  • 素の状態
    • 49s 53s 52s(備考: s = sec = 秒)
    • この比較をやったとき、いろいろプラグインをお試しで入れていたので妙に重い
  • All In One WP Security & Firewall
    • 52s 53s 53s
    • ほとんどパフォーマンスに影響がない
    • WAFは.htaccessを利用。.htaccessが使えない環境では何の効力も発揮しない。
    • WAF以外にもログイン画面の保護やDBのバックアップ、ファイルの改ざん検知もできるなどバランスが良い
    • 定番のセキュリティプラグイン
  • iThemes Security
    • 57s 58s 60s
    • WAFは有料プランのProじゃないと使えないので実はWAFなしだがいくらか速度低下
    • ダッシュボードが複雑すぎなくて分かりやすい
    • 多機能で2段階認証とかもできる
    • Proのバージョン管理気になる
  • WordFence
    • 69s 67s 72s
    • やや重い
    • WAFはPHPのコードで実装
    • 非常に多機能。脆弱性スキャンなどもできる。
    • 定番のセキュリティプラグイン
  • Shield Security
    • 72s 70s 72s
    • やや重い
    • WAFはPHPのコードで実装
    • ダッシュボードが見やすい
    • 多機能でパスワードポリシーの設定とかできる
  • NinjaFirewall
    • 55s 54s 52s
    • 割と軽量
    • WAFはPHPのコードで実装
    • シンプルでわかりやすい

All In One WP Securityがパフォーマンス的には優勝で機能も十分といったかんじ。
.htaccessが使えない場合はNinjaFirewallが負荷的には優しい。

ただWAFの機能以外で他のプラグインにもそれぞれ取り柄があるので、使いたい機能があればパフォーマンスを天秤にかけて判断。
ページキャッシュを有効にすればそこまでクリティカルな差ではないはず・・・