Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 您能否通过IP安全地验证请求?_Php_Security_Payment Gateway - Fatal编程技术网

Php 您能否通过IP安全地验证请求?

Php 您能否通过IP安全地验证请求?,php,security,payment-gateway,Php,Security,Payment Gateway,我目前正在将NAB交易支付网关集成到一个电子商务商店中。支付处理完成后,NAB Transact-system会向我们的端点发送POST请求,以便我们处理结果 问题是POST请求不包含安全哈希/令牌,我们可以使用它发回NAB Transact-system以验证请求是真实的,而不是伪造的。更糟糕的是,NAB Transact-system甚至没有用于任何信息的任何身份验证的API,本质上,安全性非常差 有没有办法安全地验证这些请求?例如,检查请求是否来自NAB transact-system操作

我目前正在将NAB交易支付网关集成到一个电子商务商店中。支付处理完成后,NAB Transact-system会向我们的端点发送POST请求,以便我们处理结果

问题是POST请求不包含安全哈希/令牌,我们可以使用它发回NAB Transact-system以验证请求是真实的,而不是伪造的。更糟糕的是,NAB Transact-system甚至没有用于任何信息的任何身份验证的API,本质上,安全性非常差

有没有办法安全地验证这些请求?例如,检查请求是否来自NAB transact-system操作的已知IP地址列表?还是反向查找IP?有哪些选项,您将如何在PHP中实现这一点


依赖IP身份验证不是很安全吗?因为它可以被欺骗?

如果您:

  • 了解IP列表(即支付提供商使用的IP)
  • IP是静态的(显然,但如果请求实际上是由提供商发送的,而不是通过“支付成功”页面上的隐藏表单发送的,则是这种情况)
  • 它们会立即通知您任何更改(或者您的脚本可能会拒绝有效请求或接受来自提供商不再使用的IP的请求)
  • 所有可以使用IP地址的系统(即,假设数据中心没有使用糟糕的网络设置,支付提供商的服务器)都受到足够的信任,不会发送任何虚假通知
不可能对源IP进行欺骗,因为TCP使用三方握手,而使用欺骗的IP握手将失败

因此,基本上:如果满足一些基本条件(见上文),则可以通过IP进行身份验证,但如果他们为您提供了验证通知的方法,则当然会更安全—可以通过调用API或使用加密签名(更好,因为它不会因无法访问的远程服务器而失败)

问题是POST请求不包含安全哈希/令牌 我们可以使用它回发到NAB交易系统 验证请求是否真实且未被欺骗

是的,这是个问题好吧:)

不依赖IP身份验证不是很安全吗 欺骗


一点也不安全

你问的问题不止一个。您应该创建第二个问题,询问您应该如何实现身份验证。这不是故意的不尊重,但这是一个有安全经验的人的工作。问这样的问题是了解可能的解决方案和问题的好方法,但采取边学边用的方法来实际实现安全性实际上是在保证灾难的发生。@adam如果你对这个问题没有答案,就不要发布。NAB transact是一个完全托管的解决方案,符合PCI标准,不存储、处理数据,甚至不将数据输入我们的系统。因此,为什么我的问题只是关于NAB系统的回发信息,根据他们的文档,NAB系统没有正确身份验证的手段。如果我在PCI合规性或安全性方面缺乏经验,我就不知道与请求相关的问题,因为请求没有安全令牌和API端点来验证请求。所以这不是随学随用,这是5年的经验。@cappucino:您的网关是否允许您在事务数据中包含一个长的唯一字符串,以便您至少可以有更多的证据证明它是有效的回发?如何启动事务?通过您的脚本连接到的服务,或者客户被带离您的站点进行结账?@cappuccino:Comments是对问题进行评论,而不是回答问题。TCP/IP欺骗有很多种。并非所有人都使用连接设置(三方握手)。其中任何一个,如果成功,都会破坏安全性。给我举一个例子,说明如何使用伪造的IP正确创建TCP连接。哦,即使通过隐蔽性实现安全性是一件非常糟糕的事情-潜在攻击者如何知道发送通知请求的目标URL?是的,我再次与NAB人员交谈,他们有很多IP,无法通过IP进行身份验证,更不用说它不安全了。基本上没有解决方案,谁说银行哪里安全?哈哈。我只能依靠付款对账了。为什么不解释一下如何使用伪造的IP执行TCP握手呢。