Node.js 我如何保护我的IPN不被欺骗或保护?

Node.js 我如何保护我的IPN不被欺骗或保护?,node.js,paypal,paypal-ipn,Node.js,Paypal,Paypal Ipn,我有贝宝的知识产权。 我有一个使用express框架的简单NodeJS服务器。 我为PayPal IPN的处理程序url提供了一个简单的post包装器 我有一个简单的IP地址检查,以检查是否张贴请求来自贝宝 我的问题是,如果有人伪造IP地址并向IPN处理程序发送POST请求,他们可能会影响我的后端系统,因为IPN处理程序具有根据POST数据确定的功能 我怎样才能使它更安全 谢谢。防止IP欺骗不是服务器端可以做的事情。您可能要做的是实现评估IP是否有效的机制,并查看它可能来自何处。之后,您可以将I

我有贝宝的知识产权。 我有一个使用express框架的简单NodeJS服务器。 我为PayPal IPN的处理程序url提供了一个简单的post包装器

我有一个简单的IP地址检查,以检查是否张贴请求来自贝宝

我的问题是,如果有人伪造IP地址并向IPN处理程序发送POST请求,他们可能会影响我的后端系统,因为IPN处理程序具有根据POST数据确定的功能

我怎样才能使它更安全


谢谢。

防止IP欺骗不是服务器端可以做的事情。您可能要做的是实现评估IP是否有效的机制,并查看它可能来自何处。之后,您可以将IP本身限制为您可以接受的解决方案

欺骗部分是客户端的,这意味着如果客户端使用代理,例如,他可以通过该代理欺骗IP,而您将无法立即知道

查看这篇短文,了解一些基本概念()

  • IPN是一项非常古老、非常笨拙的服务。你可能不应该用它。无论你想用PayPal做什么,总会有更好、更可靠的方法来完成,包括同步,或者只有在某些异步通知需要时,Webhook
  • 但是,如果出于某种奇怪的原因,您坚持将这种旧服务集成为支付依赖项,那么它的体系结构有一个内置的验证步骤,您可以将IPN消息发回PayPal进行验证。看

谢谢你,伙计。这篇文章没有提到任何处理欺骗的具体技术,只是给出了一般性的想法和解决方案。实际上,它提到了分析欺骗的方法。您无法阻止用户试图欺骗它。解决问题的方法是通过复杂的网络分析异常事件,比如99%的用户来自欧洲,但突然间有一个IP来自马达加斯加。问题是我使用的是IPN,我已经检查了IP地址是否是PayPals。有人可以欺骗PayPals的IP地址,并使用带有POST数据的函数来操作我的数据库。在这种情况下,我想说最简单的方法是设置安全性,只允许来自该IP地址的有效数据。不要以为即使pay pall也能提供正确的数据。如果他们改变了他们这边的一些事情,你也希望能够毫无问题地抓住它们。对该数据进行验证可以满足安全需求和与paypall的集成需求。不过,这可能是围绕着这个问题。