Post 後上一頁 history.back() 發生文件已到期/認重新提交表單 ERR_CACHE_MISS

原本可以正常使用的系統裡,經過資安調整之後出現了 ERR_CACHE_MISS 的問題,記錄一下解決的方法。

平常瀏覽網頁的時候也會遇到,當送出表單後,點選「上一頁」常可以看到文件已過期,或是重新傳送這些資料才可以正確顯示之類的錯誤訊息,記得以前會看到ERR_CACHE_MISS錯誤的字樣,小蛙這次遇到的只有顯示如下圖

Chrome 錯誤訊息:這個網頁需要使用你先前輸入的資料才能正確顯示。你可以重新傳送這些資料,不過這麼做會重複執行這個網頁先前執行過的任何動作。 (ERR_CACHE_MISS)
Firefox 錯誤訊息:文件已過期 此文件已不存在。您所請求的文件已不存在於 Firefox 的快取當中。為了您的安全,Firefox 將不會自動重新請求敏感文件。請點下重試以重新向網站請求取得文件。(ERR_CACHE_MISS)

小蛙接手處理的這個系統則是原本點選上一頁沒有問題,經過資安掃描修正後發生的,Google 及跟處理過該狀況的同事討論過之後找到相同的答案,如果在 header 中加入Cache-Control: private的設定,就可以解決掉這個問題!

PHP

// 在 session_start(); 後加入
header("Cache-Control:private");

JSP

response.setHeader("Cache-Control", "private");

參考資料:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。