【エックスサーバー】Contact Form 7で『アクセス拒否』が出る原因と対処法|Turnstile設定時の保存エラーはBccが原因だった

お問い合わせフォームのスパム対策として、2026年から変更になる「reCAPTCHA v3」から、「Cloudflare Turnstile」へ乗り換えるケースが増えています。

Contact Form 7プラグインも「Cloudflare Turnstile」への乗り換えを勧めており、その設定を進めていたところ、エックスサーバー環境下で「WordPress管理画面へのアクセスが拒否されました」という謎のエラーに遭遇しました。

CloudflareやWAFの設定を疑い試行錯誤しましたが、最終的な原因は「Contact Form 7の追加ヘッダーにおけるBccの記述順序」という、非常に意外なものでした。

1. 発生したトラブル:設定保存時に「アクセス拒否」

事の発端は、Contact Form 7(以下CF7)の設定変更でした。 インテグレーション設定で「reCAPTCHA v3」から「Turnstile」に変更し、フォームを確認したところ、Turnstileのチェックボックスが無事に表示されました。

しかし、デフォルトの状態ではチェックボックスがフォームの最上部に表示されてしまいます。一般的なCAPTCHAのように「送信ボタンの直上」に配置したかったため、CF7のフォームテンプレート編集画面を開きました。

[turnstile]というタグを送信ボタンの上に追記1し、いざ「保存」ボタンを押すと……。

突然のエラー画面

画面が遷移し、以下のエラーメッセージが表示されました。

WordPress管理画面へのアクセスが拒否されました

ただいまエックスサーバーのセキュリティ対策により、一部のご利用環境からWordPress管理画面へのアクセスが制限されています。・・・
以下、画像↓を参照

WordPress管理画面へのアクセスが拒否されました・エックスサーバー
エックスサーバーからアクセス拒否のメッセージが・・・

これまで複数のエックスサーバーのアカウントで同様の設定(CF7 + Turnstile)を行ってきましたが、この現象が起きたのは初めてです。

2. 原因の切り分け:WordPressセキュリティ設定?それともCloudflare?

エラーメッセージには以下のような注釈がありました。

Cloudflare (クラウドフレア)等、外部サーバーを経由してアクセスされるサービス利用をされてる場合、お客様(閲覧者)のご利用環境ではなく、、経由する外部サーバーが制限に該当している可能性があります。

タイミングが「Cloudflare Turnstile」を導入した直後だったため、一瞬「Cloudflare側の設定が影響しているのか?」と疑いましたが、TurnstileはあくまでAPI認証であり、サーバーアクセスを経由するCDNとは別物のはずです。

次に疑ったのが、エックスサーバーの「WordPressセキュリティ設定」です。 サーバーパネルから一時的に設定を解除してみましたが、エラーは解消されませんでした。(※確認後、すぐに設定はONに戻しました)
「WAF設定」をOFFにする情報2もありましたが、別の方向から探ることに。

3. 原因特定:犯人は「追加ヘッダー」のBcc

原因を特定するため、シンプルな「サンプルフォーム」を新規作成して検証を行いました。 すると、特定の設定が含まれているフォームでのみ保存エラーが発生することが判明しました。

その原因となっていた箇所が、「メール設定」タブにある「追加ヘッダー」です。

エラーが出る設定

このフォームでは、管理者宛メールにBccを設定するため、以下のように記述していました。

Reply-To: [your-email]
Bcc: info@example.com(運用ドメインではない外部アドレス)

検証として、この 2行目の「Bcc」の行を削除して保存 してみたところ、なんとエラーが出ずに正常に保存できました。

4. 解決策:Bccの行を入れ替えるだけでOK

Bcc自体は業務上必要な機能なので、削除するわけにはいきません。 そこで、「Bccの記述場所」を変えてみることにしました。

変更後の設定(解決策)

Bcc: info@example.com
Reply-To: [your-email]

上記のように、Bccを1行目(Reply-Toの上)に移動させたところ、問題なく保存することに成功しました。

Contact Form 7のメール設定の追加へだーの行を入れ替えた
追加ヘッダーの行を入れ替えた。

ここの記述順序が鍵でした。

5. まとめと考察

結局のところ、なぜ「Bccが2行目にあるとアクセス拒否されるのか」という根本的な技術理由は不明ですが、現象としては以下の通りです。

  1. 現象: CF7で設定を保存しようとすると、エックスサーバーの「アクセス拒否」画面が出る。
  2. 原因: メール設定の「追加ヘッダー」における Bcc の記述順序。
  3. 対処: Reply-To よりも 上に Bcc を記述する(または順序を入れ替えてみる)。

なぜこれで直ったのか?(推測)

おそらく、エックスサーバーのWAF(Webアプリケーションファイアウォール)の検知ルールにおいて、「特定の文字列パターン」が攻撃(メールヘッダー・インジェクション等)として誤検知された可能性があります。 「改行コードの後に Bcc: が来る」などの特定の並び順がシグネチャに抵触し、順序を変えることでそのパターンから外れたため、保存が可能になったのではないかと推測されます。

もし、エックスサーバーでContact Form 7の保存ができずに困っている方がいれば、WAF設定をオフにする前に、一度「追加ヘッダー」の記述順序を見直してみてください。

  1. Turnstileウィジェットの表示位置をカスタマイズ:どくしよネット ↩︎
  2. Contact Form 7でBBCを入れたら保存できない場合に確認したいこと!:知りたいねっと ↩︎

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です