Php 您能否通过IP安全地验证请求?
我目前正在将NAB交易支付网关集成到一个电子商务商店中。支付处理完成后,NAB Transact-system会向我们的端点发送POST请求,以便我们处理结果 问题是POST请求不包含安全哈希/令牌,我们可以使用它发回NAB Transact-system以验证请求是真实的,而不是伪造的。更糟糕的是,NAB Transact-system甚至没有用于任何信息的任何身份验证的API,本质上,安全性非常差 有没有办法安全地验证这些请求?例如,检查请求是否来自NAB transact-system操作的已知IP地址列表?还是反向查找IP?有哪些选项,您将如何在PHP中实现这一点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操作
依赖IP身份验证不是很安全吗?因为它可以被欺骗?如果您:
- 了解IP列表(即支付提供商使用的IP)
- IP是静态的(显然,但如果请求实际上是由提供商发送的,而不是通过“支付成功”页面上的隐藏表单发送的,则是这种情况)
- 它们会立即通知您任何更改(或者您的脚本可能会拒绝有效请求或接受来自提供商不再使用的IP的请求)
- 所有可以使用IP地址的系统(即,假设数据中心没有使用糟糕的网络设置,支付提供商的服务器)都受到足够的信任,不会发送任何虚假通知
一点也不安全 你问的问题不止一个。您应该创建第二个问题,询问您应该如何实现身份验证。这不是故意的不尊重,但这是一个有安全经验的人的工作。问这样的问题是了解可能的解决方案和问题的好方法,但采取边学边用的方法来实际实现安全性实际上是在保证灾难的发生。@adam如果你对这个问题没有答案,就不要发布。NAB transact是一个完全托管的解决方案,符合PCI标准,不存储、处理数据,甚至不将数据输入我们的系统。因此,为什么我的问题只是关于NAB系统的回发信息,根据他们的文档,NAB系统没有正确身份验证的手段。如果我在PCI合规性或安全性方面缺乏经验,我就不知道与请求相关的问题,因为请求没有安全令牌和API端点来验证请求。所以这不是随学随用,这是5年的经验。@cappucino:您的网关是否允许您在事务数据中包含一个长的唯一字符串,以便您至少可以有更多的证据证明它是有效的回发?如何启动事务?通过您的脚本连接到的服务,或者客户被带离您的站点进行结账?@cappuccino:Comments是对问题进行评论,而不是回答问题。TCP/IP欺骗有很多种。并非所有人都使用连接设置(三方握手)。其中任何一个,如果成功,都会破坏安全性。给我举一个例子,说明如何使用伪造的IP正确创建TCP连接。哦,即使通过隐蔽性实现安全性是一件非常糟糕的事情-潜在攻击者如何知道发送通知请求的目标URL?是的,我再次与NAB人员交谈,他们有很多IP,无法通过IP进行身份验证,更不用说它不安全了。基本上没有解决方案,谁说银行哪里安全?哈哈。我只能依靠付款对账了。为什么不解释一下如何使用伪造的IP执行TCP握手呢。