キクと散歩 サイトのセキュリティとバックアップ

昨日に続いて、今日も雨の中、みなと公園にキクの散歩

1.QMACサイトの画面の改善

1-1. 静的アーカイブ(2007年以前のHP)をテーマの枠中に

1992〜2007年度の旧サイトHTML 39本が、ヘッダー・サイドバー・フッターの外に置かれていた
原本は書き換えず、配信のたびにPHPで変換する方式とした・・旧サイトの記録としての価値を損なわずに、見た目だけを揃る

/archive/2007/ → 00Index/Activities/2007(H19).htm を読む
→ の中身だけ抽出
→ 挿入ナビ・SSIコメント・重複フッターを除去
→ 相対パスを絶対URLに変換
→ .qmac-legacy で包んでテーマのテンプレートに流し込む

1-2. その他の改善
  • 連絡先の移動・・ フッターは画面下端で見えないため、サイドバー最下部へ
  • フッター 「© 2026 中国地区品質経営協会」のみ中央寄せ
  • マニュアル
    管理者・編集者以外にはサイドバーに表示しない
  • ログインボタン
    ヘッダー右下。未ログイン時「ログイン」、ログイン時「管理画面」

2.QMACサイトのセキュリティ対策

2-1. 現状調査
観点評価
攻撃されやすさ 良好 — プラグイン1本、パーミッション適正、改ざんなし
侵入時の被害 やや弱い — 管理者が管理画面からPHPを書き換えられた
気づけるか 弱い — 改ざん検知なし
戻せるか最も弱い — バックアップが全て同一サーバー内
続けられるか最も弱い — プラグイン・テーマの自動更新がオフ

WordPressサイトの多くは「プラグイン20本・未更新・権限管理なし」という状態にあることが多い

主な発見

発見深刻度
プラグイン・テーマの自動更新がオフ高
バックアップが同一サーバー内のみ高
XML-RPC が有効(system.multicall が使える)中
WWWアドレスが暗号化されず表示中
セキュリティヘッダがほぼ未設定中
検証環境に wp-config.php.orig(DBパスワードが平文) 中
公開フォルダに.bak系が25本低
DISALLOW_FILE_EDIT が未設定 中
2-2. 実施した対策
  • ① wp-config.php.orig の削除・・検証環境の公開フォルダに、DBのパスワードが平文で書かれたファイルが置かれていた・・.orig はPHPとして処理されないため、Basic認証が外れた瞬間に中身がそのまま読める
  • ② .bak 系61本を公開フォルダ外へ・・.bak → .new → php -l → mv という作業手順を守った結果、2日間で61本が蓄積していた・・手順そのものは正しいが、公開領域に残す理由がない
  • ③ DISALLOW_FILE_EDIT・・管理画面からのテーマ・プラグイン編集を禁止・・管理者が乗っ取られても、PHPを書き込まれない・・ISALLOW_FILE_MODS は入れていない(自動更新まで止まるため)
2-3.自動更新の有効化

公式テーマとXserver製プラグインの自動更新で壊れる確率は低いので、自動更新にする
cloudsecure-wp-security → 自動更新 ON
twentytwentyfive(親) → 自動更新 ON
qmac / qmac-core(自作) → 対象外

2.4.HTTPS常時化とセキュリティヘッダ

http://qmac.jp/ がそのまま200で表示されていた。暗号化されない経路が生きている状態
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Header always set X-Content-Type-Options “nosniff”
Header always set X-Frame-Options “SAMEORIGIN”
Header always set Referrer-Policy “strict-origin-when-cross-origin”

Strict-Transport-Security と Content-Security-Policy は入れていない。設定ミスでサイトが開かなくなり、HSTSはブラウザが記憶するため取り消しが効きにくい

2-4.XML-RPC の無効化

system.multicall は1リクエストに数百通りのパスワードを詰められる。ログイン試行制限を実質的に回避される・・無効化の前に POST system.listMethods が 78メソッドを返すことを実測し、変更後に403になることを確認

▶この続きを見る・・・・