development_creative

この記事は1年以上経過しています。

【WordPress】nonceが再発行されない・・・・?キャッシュ系プラグインには気をつけろ

お問い合わせを自前で制作した時の悲劇

今まで稼働していたフォームがおかしくなった・・・。
送信を押しても、送信完了画面に遷移せず、また入力画面に戻ってきてしまう・・・。

特にプラグインを使って制作とかってしていなかったので、
記述を変えていないのに、なぜにゃ・・・?

なぜにゃ?

原因はキャッシュ系プラグイン

原因は、wordpress プラグイン「W3 Total Cahce」。

サイトの動きを高速化するために、実装していた。
設定もよろしくなかったのだろうが、なんと・・・nonceが更新されていない
そこにまでキャッシュの影響が・・・

例えば、以下のような感じ。
リロードのたびにvalue値が変化するのが、通例の仕様である。

<input type="hidden" name="nonce" value="9e6749452e9f520dbd6b95e42f0f3713dc0bab35">

上記が原因で、submitしても入力画面に戻ってきてしまうという現象だった。

プラグインを停止!しかしそれだけでは終わらなかった・・・!

原因がわかったので、すぐさま「W3 Total Cahce」を停止・削除。
しかし、症状が変わらず・・・・!

夜逃げしたい気分になったけど、もろもろもがき続けた結果、解決。

まさかの、DBに設定履歴は残ったまま、プラグインだけが消えた模様
更新ができなくなっただけで、設定がへばりついていると言った状態に。

サーバーにログインして、関連するデータを全て消し、解決・・・!

余談:nonceって何?

nonce = ワンタイムパスワード

コンタクトフォームって、そもそもnonceっていうワンタイムパスワード的なものを使用して、
悪意があるbot攻撃かどうかを判断しています。

ワンタイムパスワードの鍵を発行して、送信の際にガッちゃんこしてしっくりくるか〜的な。

詳しくはたくさん解説されている記事があるので、そちらを見た方がいいぜ。

Related ariticle

関連記事

TOP