2012-02-19 19 views
2

因此,我正在我的網站上實施與2co的支付系統。我正在使用他們的'標題重定向',它在成功付款後將客戶返回到我的網站上的一個ASPX頁面,其中包含一串querystrings。確保從第三方網站返回querystrings

無論如何,我想知道。確保這一點的正確方法是什麼?什麼如果客戶輸入他/她自己的參數,例如`Payment.aspx?params-here',並且添加了他們想要的賬號。

我如何確保這是100%真實的?

對此提出建議?謝謝!

回答

2

parameter tampering的解決方案通常將查詢參數映射到不容易被操縱的事物,例如,通過使用單向散列函數來創建摘要以與原始參數一起發送並限制特定映射/摘要有效的持續時間。如果摘要與查詢參數相匹配,則您知道該請求未被篡改。

E.g.您的網址

Payment.aspx?Amount=100

可能成爲

Payment.aspx?Amount=100&Digest=53e5e07397f7f01c2b276af813901c2

下面是關於該主題的老,但仍然相關,詳細的文章:Passing Tamper-Proof QueryString Parameters

在ASP.NET中您可以使用Page.EnableEventValidation它使用一個隱藏的文本框作爲表單的一部分來驗證請求是從表單發出的:

當EnableEventValidation屬性設置爲true時,ASP.NET 驗證控件事件源自該控件呈現的用戶界面 。控件在 呈現期間註冊其事件,然後在回發或回調 處理期間驗證事件。例如,如果列表控件包含頁面呈現時編號爲1, 2或3的選項,並且收到指定選項編號4的回發請求爲 ,則ASP.NET引發異常。在ASP.NET中,所有 事件驅動的控件默認使用此功能。