使用支付宝对企业金流接口的注意事项--URL参数警报

简介:

 现在许多企业与组织都有网上卖东西的需求,而在线付款成为B2C的最大难题,因为银行不能能直接与那么多企业(而且是中小企业)实施技术对接,幸好有类似支付宝这样的中间件,这个问题才得以解决,但是在付款给支付宝时,有一个“URL参数问题”,如果处理不当,就会给粗心的接口使用者造成损失。

  这样讲的意思是:如果支付宝可以更加严谨的处理或B2C企业技术人员能够严谨处理,这个损失是可以避免的。

  为了说明问题所在,先说一下支付宝接口在处理客户付款时的流程:

  1.顾客浏览B2C网站并选择产品,并点击类似“支付宝支付”的按钮--2.B2C网站后台程序处理,根据顾客所选商品金额、订单号等信息生成URL,跳转至支付宝网站--3.支付宝网站根据URL参数生成付款数额,用户在支付宝界面选择网银并支付给支付宝--4.支付宝收到银行款项,将款项打入B2C企业的支付宝帐户,并主动访问B2C网站的一个页面,将付款结果以参数形式返回给该页--5.该页面接收到参数后,根据URL MD5验证与付款状态成功字段,修改订单状态为“已付款”--6.B2C网站管理员看到“已付款”后发货。

  问题出在步骤2与步骤5。

  首先说说步骤2的具体环节:B2C网站按照支付宝接口的要求,将商品金额、订单号码等参数拼接为一个URL,并将此URL参数的MD5值做为最后一个参数(应该是支付宝那边做验证用)传递给支付宝网站,支付宝网站根据参数中的信息生成付款项。而URL中的所有参数都是明文传递的,虽然有MD5值做校验,但无法防止人为修改URL中的参数。攻击者完全可以在下完订单后,获得此URL并修改订单金额参数的值,并生成新的MD5校验值,而后拼接新的URL传递给支付宝,这样一来,一张订单的应付款项就被修改了。

  再来说说步骤5:B2C网站的程序员在接收到反馈后,发现付款状态为成功,就会更新整张订单状态为“已付款”,而往往忽略了一个及其重要的事情,那就是检测用户付款数额!因为支付宝只保证某订单是否付款成功,而并不能保证付款数额为订单额!(原因上面说的很清楚了)

  解决方案:

  支付宝公司改进方面:将URL参数以可逆密文形式传递,算法保密,不可对企业程序人员开放!

  B2C企业方面:接收到支付宝反馈后,如果付款标志为“True”,先不要急于更新订单状态,要判断一下付款金额是否为订单额,然后在处理。


本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2009/02/27/1399411.html,如需转载请自行联系原作者

相关文章
|
12天前
|
JavaScript
vue截取URL中的参数
vue截取URL中的参数
12 0
|
2月前
|
前端开发
[牛客网-前端大挑战QD2] 获取url参数
[牛客网-前端大挑战QD2] 获取url参数
19 0
|
2月前
BurpSuite8.2 -- 查找包含id参数的URL
BurpSuite8.2 -- 查找包含id参数的URL
19 1
|
2月前
|
分布式计算 DataWorks 关系型数据库
DataWorks数据源问题之参数“连接Url”如何解决
DataWorks数据源是指DataWorks中配置的用于数据集成的外部数据源;本合集将讲解如何在DataWorks中配置和管理数据源,以及处理数据源连接和集成过程中的问题。
29 5
|
3月前
Copy网页中F12里的请求url到postman,并且把所有参数都带过来
Copy网页中F12里的请求url到postman,并且把所有参数都带过来
29 0
|
3月前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
59 1
|
2月前
feign使用url参数传参@SpringQueryMap使用
feign使用url参数传参@SpringQueryMap使用
32 0
|
4月前
|
JavaScript
如何在JS中实现修改URL参数而不刷新页面
如何在JS中实现修改URL参数而不刷新页面
|
11天前
【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxx&param2=xxx参数(多用于通过浏览器地址参数保存用户当前操作状态的需求),实现监听url路由切换、状态变化。
【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxx&param2=xxx参数(多用于通过浏览器地址参数保存用户当前操作状态的需求),实现监听url路由切换、状态变化。
|
11天前
|
JavaScript
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集
【归总】原生js操作浏览器hash、url参数参数获取/修改方法合集