2012-11-14 36 views
2

我注意到當我在CakePHP2.2上使用Security組件時,表單是黑洞,並且用戶單擊後面的瀏覽器按鈕以單擊後返回到表單該網站的其他鏈接。避免在後退按鈕之後出現黑洞請求CakePHP2.2

例如:

點擊新崗位鏈接(而不是發佈)

點擊新聞

新的崗位

正在發帖--->BLACK-HOLED !!

有什麼辦法可以避免這種情況嗎?

謝謝。

回答

2

不,你不能這樣做,因爲這個想法是爲了避免表單操作。每個表單在第一次呈現時都會生成一個唯一的哈希。當表單被提交時,這個散列被檢查服務器端。當你點擊提交按鈕時,你第二次嘗試提交表單時,散列不再有效。您可以禁用該操作的安全後檢查,但我不會爲此犧牲安全性。

+0

是的,我知道令牌如何工作,但我只是想知道是否有任何方法來避免這種行爲。不管怎麼說,還是要謝謝你! – Alvaro

+0

您可以禁用發佈數據的安全檢查,但正如我所說,我不會建議。也許最好向用戶表明他不能重新提交表單或其他內容的警告? – burzum

5

其實有一種方法。您可以使用窗體禁用瀏覽器緩存,因此當您點擊後退按鈕時,整個新頁面將通過新的哈希從服務器加載。

$this->response->disableCache(); 

只是把它放到你的Controller方法中。

+0

+1很高興認識它:) – Alvaro

+0

這是一個訣竅! –

相關問題