inc2734 / mw-wp-form

69 stars 46 forks source link

Batcacheによるキャッシュの回避 #130

Closed likr closed 2 years ago

likr commented 2 years ago

wordpress.com等、Batcache が有効になっている環境において、フォームの入力内容がキャッシュされ第三者が閲覧可能になることを確認しました。

再現環境:https://ylikr.wpcomstaging.com/contact-2/ 再現手順:

  1. 上記ページにアクセスする
  2. nameに「あ」を入力し、emailを空欄のまま CONFIRM ボタンを押す
  3. 別ブラウザで上記ページにアクセスするとnameの内容とバリデーションエラーが表示される 補足:

対策としてCache-Controlに「max-age=0」を追加しました。 Batcacheの実装を見る限り、no-cache等は無視されますが、max-ageからキャッシュの有効期限を設定するようです。 https://github.com/Automattic/batcache/blob/master/advanced-cache.php#L236-L238 上記ページでこの修正を反映したところキャッシュが起きなくなることを確認しました。