自治体WordPressのセキュリティ初期設定|改ざん対策コード解説
地方自治体の特設サイトや地域ポータル、町内会組織が運営するWordPressサイトは、サイバー攻撃者にとって格好の「標的」となっています。行政機関や公共団体のサイトが改ざんされたり、迷惑メール送信の踏み台にされたりした場合、組織の社会的信用は一瞬で失墜します。
本記事では、Civic Tech Akitaが自治体DXや地域プラットフォーム構築で実践している、「公開前に必ず実装すべきWordPressセキュリティ初期設定と実務コード」を徹底解説します。プラグインだけに依存せず、コードレベル・サーバーレベルで脆弱性を塞ぐ実践的な防御策をまとめました。
なぜ自治体・地域ポータルのWordPressサイトは狙われるのか?
自治体や地域ポータルサイトがサイバー攻撃の対象となる理由は、個人ブログとは異なり「組織の高い社会的信用」と「住民・事業者の個人情報」が存在するためです。
攻撃者はサイトそのものを破壊するだけでなく、信頼されたドメインを悪用してフィッシング詐欺サイトへの踏み台にしたり、不正なリンクを埋め込んで検索順位を操作したりします。
公共組織特有の3大リスク
- スパムメール配信・マルウェア拡散の踏み台化
サーバーのメール送信機能や問い合わせフォームが悪用され、世界中に大量のフィッシングメールを送信する踏み台にされるリスクです。送信元ドメインがブラックリスト入りし、自治体からの正規メールまで届かなくなる実害が発生します。 - 改ざんによる偽情報の告知・フィッシングサイトへの誘導
お知らせやお便りページの投稿データが書き換えられ、偽の避難情報や不正な決済サイトへの誘導リンクが埋め込まれるリスクです。特に緊急時において住民を重大な危機に晒すことになります。 - 問い合わせフォーム・管理画面からの個人情報漏洩
住民の相談履歴や町内会役員の連絡先、ログインアカウント情報が外部に漏洩するリスクです。自治体・団体のガバナンス責任が問われ、損害賠償や調査対応に膨大なコストが生じます。
【比較表】個人ブログと自治体・地域ポータルに求められるセキュリティ基準の違い
公共性の高いサイトでは、単なるアクセス数アップではなく「改ざんゼロ」「漏洩ゼロ」「事業継続性」が最優先されます。
| 評価項目 | 一般的な個人・趣味ブログ | 自治体・地域ポータル・公共DXサイト |
|---|---|---|
| セキュリティ基準 | パスワード管理、一般的プラグイン導入 | 常時SSL、WAF、二要素認証、IP制限 |
| 事故発生時の影響 | 個人ブログの閉鎖・閲覧不可 | 住民被害、行政責任、全国ニュース等の信用の失墜 |
| データ保護レベル | 閲覧ログ程度 | 住民相談・氏名・電話番号・町内会名簿 |
| サーバー選定基準 | コスト最優先(月数百円の共用サーバー) | SLA(稼働保証)、自動バックアップ、法人専用回線 |
| 運用・ガバナンス | 個人判断で随時更新 | 情報セキュリティ基本方針に基づく厳格な運用 |
実務で必須のWordPressセキュリティ設定&対策コード3選
WordPressのセキュリティ向上には、functions.phpやスタイルシートを用いた根本的な穴塞ぎが最も確実です。Civic Tech Akitaで標準採用している実務コードを解説します。
1. 画像添付ページ(attachment_id)の自動生成遮断と301リダイレクト
WordPressは、メディアライブラリに画像を1枚アップロードするたびに「画像専用の単体Webページ(?attachment_id=XXXX)」を自動的に生成します。
この添付ファイルページは本文が存在しないため、検索エンジンから「低品質なページ(Thin Content)」と判定され、SEO評価を落とす主要因になります。さらに、公開前の資料画像や住民だよりのPDFが意図せず検索結果に単体露出するセキュリティリスクを孕んでいます。
子テーマの functions.php に以下のコードを記述することで、添付ファイルページへの直接アクセスを即座に検知し、親記事(紐付けがない場合はトップページ)へ301恒久リダイレクトさせて露出を遮断します。
<?php
/**
* ====================================================================
* Utility Module for GAS / Civic Tech Akita
* Copyright (c) Civic Tech Akita (https://akita-csmedia.com/)
*
* 本モジュールは Civic Tech Akita の留保知的財産権(自社資産)です。
* ライセンス・実装に関するお問い合わせ: https://akita-csmedia.com/?page_id=1476
* ====================================================================
*/
// 添付ファイル単体ページへのアクセスを親投稿またはトップへ301リダイレクト
function cta_redirect_attachment_to_parent() {
if ( is_attachment() ) {
global $post;
if ( ! empty( $post->post_parent ) ) {
wp_safe_redirect( get_permalink( $post->post_parent ), 301 );
exit;
} else {
wp_safe_redirect( home_url( '/' ), 301 );
exit;
}
}
}
add_action( 'template_redirect', 'cta_redirect_attachment_to_parent' );
2. reCAPTCHA v3の導入とCSSバッジ表示位置の最適化
自治体への相談窓口や資料請求フォーム(Contact Form 7等)は、悪質なBotによる総当たりスパム送信の標的になります。これらを防ぐには、Googleが提供する「reCAPTCHA v3」の導入が不可欠です。
しかし、reCAPTCHA v3を導入すると、画面右下に保護バッジ(.grecaptcha-badge)が常時表示されます。これがテーマ(Lightning等)の「トップへ戻るボタン」やスマホの固定フッターと重なってしまい、住民のタップを邪魔するユーザビリティ低下が発生します。
以下のCSSを「外観 > カスタマイズ > 追加CSS」に適用することで、操作性を損なわずにバッジの位置を安全に逃がすことができます。
/* ====================================================================
reCAPTCHA v3 バッジ表示位置の最適化
Civic Tech Akita 設計仕様
==================================================================== */
.grecaptcha-badge {
bottom: 85px !important; /* ページトップボタンやフッターナビとの重複を回避 */
z-index: 999;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
@media (max-width: 599px) {
.grecaptcha-badge {
bottom: 95px !important;
transform: scale(0.9);
transform-origin: bottom right;
}
}
3. REST API経由のユーザー名列挙防止とログイン防御
WordPressの標準機能であるREST APIは非常に便利ですが、初期状態ではブラウザから https://ドメイン/wp-json/wp/v2/users にアクセスするだけで、記事を投稿した管理者のログインID(スラッグ名)が丸見えになってしまいます。
攻撃者はこのユーザー名を利用し、パスワードの総当たり攻撃(ブルートフォースアタック)を仕掛けてきます。未ログインユーザーに対してユーザーエンドポイントへのアクセスを遮断するコードを追加します。
/ REST APIからのユーザー名列挙(/wp-json/wp/v2/users)を遮断
function cta_restrict_rest_users_endpoint( $response, $server, $request ) {
if ( ! is_user_logged_in() && strpos( $request->get_route(), '/wp/v2/users' ) === 0 ) {
return new WP_Error(
'rest_cannot_access',
__( 'ユーザー情報の取得は制限されています。', 'cta-security' ),
array( 'status' => rest_authorization_required_code() )
);
}
return $response;
}
add_filter( 'rest_pre_dispatch', 'cta_restrict_rest_users_endpoint', 10, 3 );
プラグイン依存の限界とインフラ層(サーバー)で担保すべき基準
💡 自治体・企業サイトで推奨される高セキュリティサーバー基盤
WordPressのプラグイン脆弱性やゼロデイ攻撃を防ぐには、サーバー手前で攻撃を遮断する「WAF(Webアプリケーションファイアウォール)」と「自動バックアップ」が必須です。当チームでは、SLA99.99%を保証し自治体・法人の導入実績が豊富なエックスサーバービジネスを推奨環境として採用しています。
セキュリティ対策をプラグインのみに頼るのは危険です。プラグイン自体の脆弱性や更新停止によってサイトが乗っ取られるインシデントが後を絶ちません。
自治体・企業のWebサイトでは、「インフラ(レンタルサーバー層)」で強固なセキュリティ防御壁を築いておくことが前提条件となります。
自治体・企業サイトに不可欠なレンタルサーバー要件
- Webアプリケーションファイアウォール(WAF)標準搭載:SQLインジェクションやクロスサイトスクリプティング(XSS)をWebサーバー手前で自動ブロックする機能。
- 自動バックアップ&即時リストア機能:万が一改ざんや人為的ミスが発生しても、過去14日前の状態へワンクリックで復旧できる基盤。
- 国内データセンター&稼働率99.99%以上のSLA:安定したアクセスと行政水準の信頼性を担保。
高セキュリティサーバー比較
| サーバー種別 | 個人向け格安サーバー | 法人向け高セキュリティサーバー(エックスサーバービジネス等) |
|---|---|---|
| WAF / 不正侵入検知 | 一部有料または簡易設定のみ | 標準搭載・高精度検知エンジン常時稼働 |
| バックアップ体制 | 手動設定または有料オプション | 過去14日間のWeb・DB自動バックアップ標準装備 |
| セキュリティ診断 | なし(自己責任) | 定期的なWeb改ざん検知・脆弱性スキャン機能あり |
| サポート体制 | メール・チャット対応のみ | 法人専用電話窓口・設定代行・手厚いSLA保証 |
自治体特設サイトや企業のコーポレートサイトでは、コスト重視のサーバーではなく、法人向けに特化した強固なインフラ基盤の選定を強く推奨します。
自作・内製運用の壁と保守体制の重要性
現場のIT担当者や地域おこし協力隊がWordPressサイトを自作・構築する場合、必ず「運用の壁」に直面します。
- セキュリティ対策の属人化:担当者が異動・退職した瞬間、アップデートが放置され脆弱性が放置される。
- テーマ・プラグイン更新時の画面崩れ:セキュリティ更新を適用した結果、PHPエラーやデザイン崩れが発生して運用が止まる。
- 緊急インシデント対応の限界:改ざんやサーバーダウンが発生した際、専任エンジニアがいないため原因究明に数日を要する。
Civic Tech Akitaでは、秋田県をはじめとする東北エリアの自治体・地域団体向けに、ノーコード(Glide)を活用したセキュアなアプリ開発(製品情報一覧はこちら)や、WordPressの初期セキュリティ診断・保守運用受託を行っています。
よくある質問(FAQ)
-
既存の稼働中WordPressサイトでも後から安全に対策できますか?
-
はい、後からのセキュリティ強化も可能です。
本記事で紹介した functions.php のリダイレクト処理や追加CSSは、既存の稼働中サイトにも影響を最小限に抑えて導入できます。ただし、すでに改ざん被害に遭っていないか事前のログ確認・ファイル診断を行うことを推奨します。
-
セキュリティプラグインを複数導入すればコード改修は不要ですか?
-
いいえ、プラグインの入れすぎは逆効果です。
セキュリティプラグインを複数重複させると、処理速度が大幅に低下するだけでなく、プラグイン同士の競合によりサイトが表示されなくなるリスクがあります。サーバーの標準機能(WAF等)と最低限の厳選コードで守るのが最も堅牢です。
-
秋田県外の自治体・団体・事業者でもセキュリティ診断や改修の相談は可能ですか?
-
いいえ、プラグインの入れすぎは逆効果です。
全国どの地域の自治体・企業様でもオンライン対応可能です。
Civic Tech Akitaでは、Google MeetやSlackを活用し、全国の地域DX支援やシステム受託開発(PWA/Glide/GAS連携)を行っています。お気軽にご相談ください。
まとめ:セキュリティは「公開前」の設計で9割決まる
Webサイトのセキュリティ対策は、被害に遭った後の復旧作業よりも「公開前の設計と初期設定」で防ぐ方がコストも被害も圧倒的に小さく抑えられます。
- 不要な画像添付ページを遮断し、SEO評価と機密性を維持する
- reCAPTCHA v3でBotの攻撃を防ぎつつ、UIを最適化する
- 管理者のユーザー名露出を防ぎ、ブルートフォース攻撃を遮断する
- 法人水準のセキュアなサーバーインフラを選定する
地域住民や顧客から選ばれ、信頼され続けるサイト運営のために、まずは現状のセキュリティチェックから着手しましょう。
自組織のWordPressサイト、本当に安全ですか?
「公開前の脆弱性診断」と「安全な保守基盤づくり」をサポートします
Civic Tech Akitaでは、金融機関出身・地域DXプロデューサーの規律に基づき、行政機関・地域ポータルで求められる厳格なセキュリティ要件(改ざん防止、ユーザー名漏洩遮断、WAF・SSL設定)を満たしたサイト改修およびPWAアプリ開発を承っています。
※オンライン(Google Meet)にて全国対応。予算化前の仕様書策定やチェックシート記入のご相談も承ります。
