首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这贝宝系统安全吗?

这贝宝系统安全吗?
EN

Stack Overflow用户
提问于 2010-09-24 03:26:53
回答 5查看 434关注 0票数 3

我只是想让其他人来处理这件事,以确保我没有遗漏一些明显的东西。我正在使用Payflow链接,它处理所有的信用卡恶意电子商务交易。但是,您通过POST变量将事务的总量传递给PayPal --这似乎是一个潜在的安全漏洞:

  1. 恶意用户可以加载他的购物车,然后通过读取隐藏的输入字段来结帐
  2. ,他可以伪造帖子到PayPal,总计1美分。
  3. Paypal将执行事务,调用我的订单日志脚本,该脚本将记录事务并标记他的项目以供运输。

我可以通过访问数据库,提取他的购物车项目,重新计算他们的价格,再加上运输和税收,来检查他的手推车的总金额。但是,仅仅为了检查篡改(多个DB查询,再加上每个项目2个web服务调用以获取发货和税收),这将是一件非常繁重的工作。

我的想法:

through.

  • Differences将向
  1. PayPal发送金额
  2. 的普通POST变量,但在用户定义的变量(这些变量被转发到我的日志脚本)中,存储总额的sha1哈希,再加上另一侧的一些私钥
  3. ,日志记录脚本将重新散列美元金额,加上相同的私钥,并将发送的哈希与发送的哈希进行比较,以指示篡改,并对顺序进行红色标记,以供人审阅。

这有道理吗?我是不是遗漏了什么?

编辑(用于澄清):

显然,基于最初的几个回应,我并没有阐明我的观点。我知道这不是一个理想的设置。我知道其他公司也提供类似的甚至更好的服务。我知道我必须检查变量,我不能简单地相信它们。请注意,如果你要回答,我想要的答案是:

有人能用我的提议演示一个漏洞吗?该漏洞允许恶意用户更改PayPal变量并不被检测到?

这是一个非常直截了当的问题。这就是我要找的。对于任何能够回答这个问题的人,请提前感谢你们的时间和帮助!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-10-04 21:55:42

我看到的一个潜在问题是每次生成SHA-1哈希时都使用相同的salt。如果每次使用相同的salt,攻击者可以非常容易地确定0.99美元(或其他一些低金额)的哈希值,然后将其替换为他们想要支付0.99美元的任何事务。

编辑:很明显,如果您想出了一些确定盐分的算法,那么这个问题就成立了。如果这个算法被破坏了,攻击者也可以利用这个漏洞。

票数 2
EN

Stack Overflow用户

发布于 2012-11-02 14:58:04

我迟到了两年,但我同意作者最初的做法。最近我不得不对PayFlow链接也做了同样的事情。我所做的是根据用户的id、订单总数以及他们购买的内容(购物车)生成一个散列,并将其传递到PayFlow链接用户字段中。我还在另一个字段中传递了一个用于创建此散列的随机盐。后端是代码中的另一个共享密钥,用户永远不会看到。总之..。

hash = (user ID) + (order total) + (cart details) + (random salt) + (shared key)

另一方面,我使用我从Paypal收集到的与他们处理的输入相同的输入再次生成哈希。如果没有任何东西被篡改,哈希应该匹配。

如果安装正确,此方法将完美无缺地工作。这里的密钥是用户永远不会看到的代码中的共享密钥,并且使用随机盐,所以即使使用相同的购买,散列也是不同的,即使是相同的购买。

希望这对将来的人有帮助!

票数 3
EN

Stack Overflow用户

发布于 2010-09-24 04:00:57

您需要在IPN之后使用DB详细信息对计算出的金额进行手动检查,然后用PayPal支付的金额进行验证。没有其他选择,我强烈建议你这样做,否则用户将尝试和游戏的系统。

您可以使用本指南加密PayPal变量:

http://dev.juokaz.com/php/paypal-payment-with-encryption

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3784015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档