我已將Stripe實施到Laravel項目中。我有一個關於Stripe在我的服務器端的安全性和最佳實踐的問題。作爲一個例子,我有三個訂閱計劃可用於我的網站(假設免費試用版,基本版和專業版)。在Stripe驗證用戶的付款並向我發送交易令牌後,我將此令牌與用戶選擇的訂閱一起發送到我的服務器,然後我實際向用戶收費。此片段顯示執行此過程的表單提交代碼。條紋 - 用不同的訂閱欺騙我的服務器
$('#ButtonForBasicSubscription').click(function(){
var token = function(res){
var $token = $('<input type=hidden name=stripeToken />').val(res.id);
var $plan = $('<input type=hidden name=selectedPlan />').val('basic');
$('form').append($token,$plan).submit();
};
StripeCheckout.open({
key: 'pk_my_publishable_key',
address: false,
amount: 100,
currency: 'gbp',
name: 'My Product',
description: 'Basic Subscription',
panelLabel: 'Make Payment',
token: token
});
在我的服務器,我然後測試selectedPlan輸入,然後根據該值,充電用stripeToken用戶。
我擔心的是我發送的方式是selectedPlan變量。我想不出一個更好的方式來做到這一點(儘管我確信必須有),我擔心的是,(邪惡)用戶可能會攔截條紋標記並將其提交給我的服務器不同的selectedPlan價值(例如某人選擇基本訂閱,完成支付給Stripe,但隨後將返回的令牌用「專業」selectedPlan值而不是「基本」selectedPlan提交給我的服務器)。這會給用戶一個專業版訂閱付費的基本訂閱。
這甚至可能嗎?或者我是否已經從一箇中立的懷疑論者轉變爲瘋狂的過度偏執狂。
任何幫助或指導,非常感謝。
防止中間人攻擊通過https發送您的數據。爲了防止重放攻擊,請確保您的令牌生成功能強大且合理。 – Halcyon