2011-05-05 30 views
0

執行openssl會阻止用戶更改按鈕值嗎? 我已經研究了加密按鈕,從託管到使用openssl。 使用託管按鈕會以犧牲靈活性爲代價提供安全性,儘管有些變量可以覆蓋,但仍然不能覆蓋重要的變量。實施openssl會阻止用戶更改按鈕值嗎?

  1. 會在我的網絡服務器上使用和實現openssl防止用戶更改非託管的PayPal按鈕嗎?

  2. 或者它會更好地回退到託管按鈕,並使用/驗證使用IPN?

回答

0

最好的解決方案是使用Express Checkout。這可以讓你比標準按鈕所提供的靈活性大得多。

如果您在考慮如果您使用IPN,您可能有足夠的能力整合Express Checkout。所有的確實是,1個API調用,然後是重定向到PayPal,並且至少還有1個API調用來完成支付。

一個典型的流程將如下所示:

  1. 調用SetExpressCheckout API。如果您是新手,那麼使用PayPal的NVP API界面就會變得非常簡單。您可以將數據作爲GET NVP字符串發送到https://api-3t.paypal.com/nvp,並以相同格式返回迴應。
  2. 採取從響應令牌,並重定向到https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=XXXXXXXhttps://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=XXXXXXX的沙盒測試)
  3. 只要返回買家,PayPal將一個PAYERID追加到RETURNURL。如果找不到它,請調用GetExpressCheckoutDetails API並提供您的令牌以檢索它。
  4. 使用PAYERID和TOKEN,請致電DoExpressCheckoutPayment完成付款。

要開始使用此,我建議採取在看他們在https://www.x.com/community/ppx/sdks#NVP

0

我的答案提供PHP SDK NVP非貝寶特定的(適用於任何種類的HTTP形式的輸入),但簡短的答案是否定的。即使SSL也不能阻止瀏覽器修改它接收到的表單值。

用戶可以使用bookmarklet在頁面加載後執行您選擇的JavaScript程序,該程序可以更改表單值。由於SSL僅保護瀏覽器和服務器之間的傳輸,而不是在瀏覽器處理完頁面之後,因此無論您使用它,都沒有任何區別。

這可以通過Greasemonkey實現自動化,除了使用戶安裝其他人的JavaScript程序在您的網頁上運行更容易。如上所述,使用SSL根本不會影響到這一點,因爲它全部是執行客戶端,您作爲服務器無法控制。

正如您所暗示的那樣,使用加密的PayPal按鈕可以解決問題,因爲按鈕參數的任何修改都會使校驗和失效,並且PayPal不會接受該項目。