Tips
【実録・復旧】Simple CAPTCHA Alternative with Cloudflare TurnstileプラグインとContactform7インテグレーションのTurnstileのコンフリクト
知り合いの制作会社さまから、連絡を受けまして重大な事柄が判明。
「おたくのお問い合わせフォーム動いてないよっ」っえ?
ハッキングでも受けたのかと思い、アクセスログやら調べるも痕跡はなし。
何か変更したっけ?
フォーム自体に変更を加えた覚えがなく、これまでもお客様からメールをいただいていました。最近改修を行ったこととすれば、投稿をインタラクティブにコメントを受け付けるようにしたこと。そしてボット駆逐用にTurnstileのプラグインをインストールしたこと。
もともと、メールフォームにはインテグレーションで提供されていたTurnstileを利用していて…、そこか??
原因は競合?
多分、何が起きているかというと、メールフォームのインテグレーションのTurnstileと連携のうえ、Simple CAPTCHA Alternative with Cloudflare Turnstileをインストールして、おのおのがCloudflare Turnstileを読み込んでいる状態でコンフリクトを起こしてしまっている?
コンフリクトの原因としては、Cloudflare TurnstileはJavaScriptを1回だけ初期化するのが前提でトークン(検証キー)を1フォームにつき1つしか発行しない、しかし2つのプラグインを併用するとで同じJSが二重ロードして同じDOMに複数widgetが生成されトークン上書きか無効化。
その結果、フォーム送信時に認証失敗して送信できない状況かと考えました。
そこで、メールフォームのインテグレーションを一時的に無効にしてフォーム送信すると成功。やはりコンフリクトが原因のエラーのよう。
で、どうした?
インテグレーションで用意されたいたTurnstileの設定を無効(キー削除)にして、メールフォームもプラグインのTurnstileを利用するようにショートコードを変更。レイアウトを整えて公開。
でどうなった
これまでメールフォームで起きていた送信エラーも改善されて、問題なくメール送信ができるようになりました。プラグイン側ではメールフォームでの使用をfalseにしていたにもかかわらず、コンフリクトが起こるなんて想像もしていませんでした。
ありがとう>友よ

コメントを残す