トピックス

2026.10.05

WordPressを使わず自社CMSを持つことにした理由|脆弱性の実例と、レンタルサーバーでも使える仕組み

「WordPressを使わず自社CMSを持つことにした理由|脆弱性の実例と、レンタルサーバーでも使える仕組み」のアイキャッチ画像

WordPressでは、不正アクセスの入口になるプログラムの欠陥(脆弱性)が、毎日のように見つかっています。Blue&Co.のサイトはもともとWordPressを使わず、記事はmicroCMS、問い合わせフォームはFormspreeという外部サービスに任せてきました。今回その2つを、自社で持つCMS(サイトの記事や問い合わせを管理する仕組み)「BlueCMS」に置き換えました。お客様のサイトにも、WordPressに代わる形として広げていきます。

最初に切り替えたのは問い合わせフォームです。2026年9月24日、このサイトのフォームの送信先をFormspreeからBlueCMSに変えました。実際の問い合わせも、すでにBlueCMSに届いています。いまお読みのブログはまだmicroCMSで書いていますが、こちらもBlueCMSへ移していく予定です。

サイトでいちばん危ないのは、WordPressそのものより、中身を誰も把握していない状態だと私たちは考えています。BlueCMSは、その状態を作らないための仕組みです。運用を始めてまだ日が浅いので、ここに書くのは、作って切り替えるまでに分かったことの範囲です。

WordPressの脆弱性は1年で1万件超。更新が追いつかない

Patchstackは、WordPressのセキュリティを専門に調べている会社です。同社の報告(State of WordPress Security in 2026)によると、2025年にWordPressまわりで見つかった脆弱性は11,334件でした。前の年より42%増えています。

そのうち91%は、WordPressにあとから機能を足す追加部品(プラグイン)のものです。WordPress本体はよく保守されていますが、サイトに入れたプラグインのどれか1つに穴があれば、そこから入られます。

時間の余裕もありません。脆弱性が公開されてから最初に悪用されるまでの時間は、中央値で5時間です。つまり半数は、公開から5時間以内に悪用が始まっています。しかも全体の46%は、公開された時点でまだ修正版が出ていませんでした。更新しようにも修正版がない間に、攻撃が始まることがあります。

引き継いだサイトで見た、侵入の跡と、黙って消える問い合わせ

これは海外の統計だけの話ではありません。制作会社として既存のサイトを引き継ぐと、危ない状態のサイトに出会うことがよくあります。

2026年8月には、あるクライアントのWordPressサイトで不正侵入の調査と対応をしました。サイト全体のバックアップファイルが、誰でもダウンロードできる場所に置かれたままでした。そのファイルから、データベースのパスワードが漏れていました。侵入者は、遠隔操作のための裏口と、隠れた管理者アカウントを作っていました。幸い、サイトの改ざんや情報の流出までは至っていませんでした。

別のサイトでは、プラグインが5年ほど更新されておらず、承認待ちのスパムコメントが113件たまっていました。また別のサイトでは、10年ほど前に作られた問い合わせフォームが、本文が99文字未満の問い合わせを、エラーも出さずに捨てていました。送った人には送信できたように見えるので、誰も気づけません。

原因はどれも、道具そのものより、その後の扱いにありました。プラグインを足し、バックアップを置き、作った人がいなくなる。WordPressは機能を足しやすいぶん、こうして誰も中身を把握していない状態を招きやすいと考えています。

外部サービスの組み合わせを、自社のCMSに置き換えた

条件は「お客様のレンタルサーバーでも使えること」

新しい仕組みを選ぶうえで、外せない条件がありました。お客様が自分でレンタルサーバーを契約している場合にも対応できることです。

制作会社の仕事では、サーバーをお客様自身が契約していることがよくあります。長年使っているレンタルサーバーがあり、メールもそこで動いている。こういうサイトを、CMSの都合だけで別のサーバーに引っ越してもらうのは現実的ではありません。

WordPressを続けるのも、新しいCMSも、条件に合わなかった

お客様のサイトをこれまでどおりWordPressで作り、更新と監視をきちんとやる道もありました。ただ、プラグインを入れるほど、見張る対象は増えます。公開から悪用まで中央値5時間という速さに毎回追いつくのは、小さな会社には難しいと判断しました。

WordPressに代わる新しいCMSもあります。2026年4月には、Webサイトの配信や防御を手がけるCloudflareが、新しいCMS「EmDash」を「WordPressの精神的な後継」として発表しました。プラグインを1つずつ区切った場所で動かし、1つに穴があってもサイト全体に広がらないようにする設計です。ただ、公式ドキュメントによると、この仕組みが動くのは、Cloudflareの有料のサーバー環境か、専用のプログラムを常に動かしておけるサーバーに限られます。一般的なレンタルサーバーでは使えません。発表時点では、正式版の前の試用版でもありました。

このサイトは外部サービスを組み合わせ、あらかじめ作ったページのファイルを置くだけの形(静的なHTML)で作っています。サイト側にはログイン画面もプラグインもないので、狙われる入口がほとんどありません。

困ったのは、外部サービスでは料金も仕様も相手が決めることでした。月額はサイトの数だけかかります。Formspreeでは通知メールが英語で届き、自社のドメインから送るには上位のプランが必要でした。そこで、静的なHTMLのサイトはそのまま残し、microCMSとFormspreeの役割を自社のCMSで受け持つことにしました。

CMSとサイトを切り離せば、置き場所も作り方も選ばない

BlueCMSがするのは、サイトに記事の中身(タイトルや本文など)を渡すことと、フォームから届いた問い合わせを受け付けることだけです。

サイトの見た目には関わらないので、置き場所も作り方も選びません。お客様が契約しているレンタルサーバーなら、記事を読み込む小さなプログラム(PHPのファイル)を置くだけです。Next.jsなどの開発ツールで作り、Vercelなどのクラウドで公開しているサイトなら、記事を公開するたびにページが自動で作り直されます。フォームはどのサイトでも、送信先をBlueCMSに変えるだけです。

AIの時代なら、小さな会社でもCMSを持てる

少し前なら、小さな制作会社が自前のCMSを作るのは無謀でした。作るのに時間がかかりすぎるからです。

この前提が、AIで変わりました。BlueCMSは、プログラムを書く作業を任せられるAI(コーディングエージェント)と一緒に作っています。何を作るか、どこまで安全を確かめるかは私たちが決め、コードを書く作業の多くをAIに任せました。2026年9月3日に作り始め、9月24日には自社サイトのフォームを実際に切り替えています。約3週間です。

必要な機能だけを自分たちの仕事の形に合わせて作るやり方を、AIの時代には小さな会社でも選べるようになったと感じています。

まず問い合わせフォームを移した|困っていたことがどう変わったか

最初にフォームを選んだのは、機能が小さく、それでいて一番大事な部分だからです。問い合わせが届かなければ、サイトは問い合わせてくれる人との接点を失います。

先に書いておくと、Formspreeは静的なHTMLのサイトにもフォームを置ける便利なサービスです。フォームが1つで、問い合わせが月に数十件なら、無料プラン(月50件まで)で十分です。自分で保守しなくていいことは、大きな価値です。私たちが困ったのは、複数のサイトのフォームを、クライアントの名前で運用しようとしたときでした。

英語の通知と他社のアドレス → 日本語で、自社のドメインから

Formspreeから届く通知は、件名が「You've received a new form submission」という英語で、送り主はformspree.ioのアドレスです。問い合わせた人への自動返信も、Formspreeのドメインから送られます。

自社だけなら慣れれば済みます。しかしクライアントのサイトに置くと、クライアントの担当者に見慣れない英語のメールが届きます。問い合わせた人にとっても、見覚えのないドメインから返事が届くことになります。迷惑メールと間違えられないか、という心配もありました。自社のドメイン(メールアドレスの@より後ろ)から送るには、Businessプラン(月90ドル)が必要です。私たちが使っていたProfessionalプラン(月30ドル)の3倍です。

BlueCMSでは、通知メールと自動返信を、日本語で、Blue&Co.のドメインから送っています。差出人の表示名はクライアントの名前にできます。通知メールには入力内容が表で並び、メール内のリンクから、管理画面でその問い合わせを開けます。

対応の記録が残らない → 管理画面に、状態と担当者まで残る

Formspreeでは問い合わせがメールで届くので、対応したかどうかはメールボックスの中で管理するしかありませんでした。もう返信したのか、誰が返信したのか、社内でどう判断したのかが、メールの山に埋もれます。

BlueCMSでは、問い合わせはメールで届き、管理画面にも残ります。1件ごとに「未対応・対応中・完了」の状態と担当者を付けられ、社内向けのメモも残せます。返信も管理画面から送れて、やりとりの履歴は問い合わせ1件ごとにまとまって残ります。一覧は、Excelなどで開けるCSV形式で書き出せます。

届いたか分からない → メール以外でも確かめられる

いちばん作りたかったのは、これです。前の章で書いた、99文字未満の問い合わせが捨てられていた事故は、送った人も受け取る側も気づけませんでした。メールしか手がかりがないと、届かなかったことに誰も気づけません。

BlueCMSでは、自動投稿のプログラム(ボット)として弾いたものを除き、受け付けた問い合わせはすべて管理画面に残ります。通知メールが届いたのか、宛先の間違いなどで戻ってきたのかも、配信記録で追えます。「フォームから送ったのに返事が来ない」と言われたとき、問い合わせが届いていたのか、どこで止まったのかを調べられます。

このほかに、次の機能も入れました。

  • 問い合わせを受けた瞬間に、SlackやLINEへ知らせる
  • Googleスプレッドシートに1行ずつ追記する
  • 画像やPDFの添付を受け付ける(4MBまで)
  • 条件によって通知先を変える(店舗ごとに分けるなど)
  • 設定を確かめるためのテスト送信

費用はサイトの数に比例しなくなった

Formspreeは、フォームを置くサイトごとにプランを選ぶ料金体系です(2026年10月時点、月払いで無料〜月90ドル)。microCMSも、有料のTeamプランは月4,900円で、使うサイトの数だけかかります。

BlueCMSは、サイトの数に関係なく次の構成で動いています。

  • サーバー:Vercel Pro(月20ドル)。Blue&Co.の別の自社サービスと共用しているので、BlueCMSのために増えた費用はほぼありません
  • データベース:Neonの無料枠
  • メール配信:Resendの無料枠(月3,000通まで)

いまは自社を含めて5つのサイトが登録されています。それでも費用は増えていません。ただし、ここにはBlueCMSを作って保守する私たちの作業時間は入っていません。サーバー代が増えない代わりに、その手間は自分たちで引き受けています。問い合わせやメールの量が無料枠を超えたら、そこで有料プランに上げる予定です。

自社で持つと大変なこと

安全を守る責任は、自分たちに返ってくる

一番大きいのはここです。自社でCMSを持てば、WordPressのプラグインの脆弱性からは離れられます。その代わり、BlueCMS自体の安全を守る責任は自分たちに返ってきます。ソフトウェアの更新、データのバックアップ、障害時の対応も同じです。

見張る範囲は、WordPressより小さくできています。サイト側は静的なHTMLなので、狙われる入口はBlueCMSの管理画面とフォームの受付だけです。そのうえで、月に1回は更新と動作確認をする、と決めて運用しています。

ただ、前半で書いた「公開から5時間」の速さには、月1回の点検だけでは追いつけません。そこで2026年10月から、BlueCMSが使っている部品に脆弱性が見つかると、すぐに通知が届くようにしました。直すための更新も自動で提案されます。WordPressで怖かった「誰も中身を把握していないシステム」を、自分たちで作ってしまっては意味がありません。

大量送信を受けると、本物の通知まで止まるおそれがある

メール配信の無料枠には、1日あたりの送信数の上限もあります。悪意のある大量送信を受けると、この上限に達して、本物の問い合わせの通知まで止まってしまうおそれがあります。人には見えない入力欄を置き、そこに書き込まれた送信をボットとして弾く仕組みは入れています。ただ、対策はこれからも強化していく部分です。

切り替えたら、実際に送って確かめる

実際のサイトを切り替えた日にも、つまずきがありました。メール送信の設定値が正しく入っておらず、管理画面では成功と表示されたのに、実際の送信は失敗していたのです。

テスト用の問い合わせを公開中のフォームから送り、通知と自動返信が届くことを確かめて、初めて気づけました。フォームを切り替えたときは、設定画面の表示を信じず、必ず自分で送ってみることをおすすめします。

次はブログを移す

microCMSの使い勝手に不満はなく、BlueCMSの管理画面もmicroCMSの見やすさを手本にしました。それでも移すのは、記事とフォームを同じ管理画面で扱えるようにするためです。BlueCMSには、下書き、予約公開、画像の自動変換、公開前のレビュー依頼といった記事の機能もすでにあります。フォームの運用が落ち着いたら、このブログも移し、またここで報告します。

よくある質問

WordPressは使わないほうがいい?

本体とプラグインを常に更新し、使っていないプラグインを消し、バックアップを公開の場所に置かない。これを続けられる体制があれば、WordPressは今も便利な選択肢です。私たちは、それを全クライアントのサイトで続けるより、狙われる入口の少ない形にするほうを選びました。

WordPressで作った今のサイトのまま、問い合わせフォームだけ移せる?

移せます。フォームの送信先をBlueCMSに変えるだけなので、サイト全体を作り直す必要はありません。

まとめ|中身を把握できる仕組みを、自分たちで持つ

BlueCMSは、静的なHTMLで狙われる入口を減らし、記事とフォームを、自分たちが中身を知っているCMSで受け持つための仕組みです。CMSとサイトを切り離したので、お客様のレンタルサーバーでも、どんな作り方のサイトでも使えます。

自社で持つ以上、安全を守る責任も自分たちにあります。点検を続けながら、ブログの移行も進めます。

引き継いだWordPressの中身が分からない、フォームの問い合わせがきちんと届いているか確かめたい。そんな段階からでも、ご相談をお受けしています。