2014-08-28 90 views
1

我正試圖找到一個跨瀏覽器的實現,將工作以下情況。如何限制瀏覽器返回外部網站?

用戶完成我們的一個在線應用程序並重定向到外部在線支付系統。他們輸入他們的銀行信息,然後重定向到我們的應用程序,在那裏他們收到確認信息。

現在,如果用戶按下瀏覽器的後退按鈕,他們將被帶回外部銀行網站,在那裏他們可以第二次輸入其銀行詳細信息。通常情況下,銀行會注意到第二筆付款是通過相同的訂單進行的,不會對它們進行雙重收費,但偶爾舊版瀏覽器會讓雙倍付款通過。我相信我們可以將一些客戶端代碼添加到銀行詳細信息頁面,但不能添加任何服務器端邏輯。

有沒有解決這個問題的標準方案?

+1

存在 - 您不使用使用瀏覽器重定向的API,而是使用您的服務器來實現付款邏輯(也就是更難實現的API)。如果您選擇瀏覽器重定向方法 - 您認爲用戶不是愚蠢的,並且他們不會無緣無故地按下「返回」按鈕。如果他們確實按下了它,那麼控制這一點並不取決於你,因此實施這個「不要自己動手」的保護措施並不是你的責任。 – 2014-08-28 13:01:52

+2

如果銀行網站正確實施,則無法返回該網站併發出另一筆轉賬,因爲某些關聯的交易令牌已過期。由於它是用戶瀏覽器歷史記錄中的常規站點,因此無法阻止用戶返回。 – deceze 2014-08-28 13:03:50

回答

0

是的,你可以在上面您的確認頁面,例如在執行額外的重新導向:

if(!isset($_GET['x'])){ 
    header("Location: ./?x=x"); 
    exit(); 
} 

那麼如果用戶按回去,他們會打在同一個頁面,SAN的得到變量,並再次重定向

相關問題