C# 如何防止使用PayPal编辑隐藏字段';s的网站支付标准?
我在我的ASP.NET网站上使用贝宝的网站支付标准 我所做的是,当用户单击“立即付款”按钮时,我在codebhind中执行以下操作:C# 如何防止使用PayPal编辑隐藏字段';s的网站支付标准?,c#,asp.net,paypal,C#,Asp.net,Paypal,我在我的ASP.NET网站上使用贝宝的网站支付标准 我所做的是,当用户单击“立即付款”按钮时,我在codebhind中执行以下操作: 数据库状态更改 生成PayPal表单,项目的隐藏字段 调用ScriptManager.RegisterClientScriptBlock()调用将PayPal表单提交给PayPal的javascript函数 我担心用户可能会在web浏览器上按stop,然后编辑隐藏表单中的值,然后提交表单。有没有办法防止这种情况?还是更好的选择 提前非常感谢 我还没有完成PP标准。
提前非常感谢 我还没有完成PP标准。我用过Gateway和Pro/Express结账,但已经有一段时间了-不过,你的问题可以用一种更“通用”的方式处理 不幸的是,您的计划无法保护您——就像web上的任何其他HTML表单一样,HTTP请求和响应可以使用现成的工具进行检查和篡改 防止篡改的常用方法是对来自任何客户端/浏览器的提交值进行服务器端验证(经验法则是“不信任任何人”)。在您的场景中,您是在服务器端执行操作,但这仍然比数据的实际提交目标(即PayPal)早。实际上,将数据发送到“目标”的步骤仍然是浏览器/客户端——可以说,这就是问题所在。要验证的数据是针对您以外的系统的(因此您无法针对PayPal进行验证) 除非有一个附加的安全层,例如签名或加密,否则它总是容易被篡改(查看已成定局,可以查看) 我不相信(但我可能错了)PP标准有一个发布数据的服务器到服务器的选项。这将有效地对客户端/浏览器完全“隐藏”数据-无需查看,无需篡改。数据传输是在后台进行的-客户端/浏览器对此一无所知 然而,他们的方法似乎是正确/安全的 本质上,您将动态创建他们所谓的“加密按钮”。这样一来,数据在任何检查它的人看来都像是胡言乱语——这对PayPal来说才有意义,因为他们可以相应地解密数据。这就是如何保护数据不被篡改的方法(不是查看-但同样,可以看到的是胡言乱语) 嗯 更新:
也应该考虑贝宝IPN存储数据。你是在做上面的假设(我认为),每个点击按钮的人都会实际完成付款(或者可以成功付款)。使用IPN,只有在成功付款后,您才能“监听”来自PayPal的数据(您应该在这里存储订单相关数据和/或库存更新等)…
我还没有完成PP标准。我用过Gateway和Pro/Express结账,但已经有一段时间了-不过,你的问题可以用一种更“通用”的方式处理 不幸的是,您的计划无法保护您——就像web上的任何其他HTML表单一样,HTTP请求和响应可以使用现成的工具进行检查和篡改 防止篡改的常用方法是对来自任何客户端/浏览器的提交值进行服务器端验证(经验法则是“不信任任何人”)。在您的场景中,您是在服务器端执行操作,但这仍然比数据的实际提交目标(即PayPal)早。实际上,将数据发送到“目标”的步骤仍然是浏览器/客户端——可以说,这就是问题所在。要验证的数据是针对您以外的系统的(因此您无法针对PayPal进行验证) 除非有一个附加的安全层,例如签名或加密,否则它总是容易被篡改(查看已成定局,可以查看) 我不相信(但我可能错了)PP标准有一个发布数据的服务器到服务器的选项。这将有效地对客户端/浏览器完全“隐藏”数据-无需查看,无需篡改。数据传输是在后台进行的-客户端/浏览器对此一无所知 然而,他们的方法似乎是正确/安全的 本质上,您将动态创建他们所谓的“加密按钮”。这样一来,数据在任何检查它的人看来都像是胡言乱语——这对PayPal来说才有意义,因为他们可以相应地解密数据。这就是如何保护数据不被篡改的方法(不是查看-但同样,可以看到的是胡言乱语) 嗯 更新:也应该考虑贝宝IPN存储数据。你是在做上面的假设(我认为),每个点击按钮的人都会实际完成付款(或者可以成功付款)。使用IPN,只有在成功付款后,您才能“监听”来自PayPal的数据(您应该在这里存储订单相关数据和/或库存更新等)…
即使我使用PHP,使用NVP API,您也可以使用只能由PayPal使用的令牌获取重定向链接。所有链接看起来都像https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=token
,其中token
是以前通过调用PayPal API检索到的令牌
我只为ExpressCheckout开发了它。您可以在此处查看API:
即使我正在使用PHP,使用NVP API,您也可以使用只能由paypal使用的令牌获取指向重定向的链接。所有链接看起来都像
https://www.sandbox.paypal.com/webscr?cmd=_express-checkout&token=token
,其中token
是预先检索到的令牌