【发布时间】:2013-06-20 15:01:20
【问题描述】:
我有一个网络应用程序,通过它可以进行支付交易。
申请流程
用户将打开我的应用程序并点击支付按钮。现在我将请求重定向到支付网关提供商(ICICI、EBS、PayPal 等)。现在,支付网关提供商页面将出现在我的网站中。现在支付流程将通过,支付网关提供商会将他们的响应发布到我的应用程序(到 JSP 页面)。捕获响应后,我将处理请求。
我的要求
当他们调用我的 JSP 时,我如何知道 ICICI、PayPal 或 EBS 服务器 IP 地址。如果我打电话给request.getRemoteAddr(),它将提供客户端 IP 地址。我想知道支付网关服务器的IP地址。
提供者将数据发布为 GET 而不是 POST。在这里,我没有提到我的实际支付网关提供商。
【问题讨论】:
-
如果提供商直接向您发送 GET,那么您将看到提供商的 IP。如果您看到客户端 IP,则 GET 来自浏览器(可能由提供商发起,例如使用 Javascript 或重定向)。提供商究竟是如何做到这一点的?为什么需要 IP 地址?
-
为了防止网站被黑客攻击,我们计划检查IP地址。在我的情况下,当他们调用时,请求标头的“引用者”不可用。
-
啊,所以你想做一些安全检查?通过 IP 地址执行此操作通常不是一个好主意,因为它可能会被伪造。再次,请扩展您的问题以解释为什么需要 IP 地址。
-
为了安全检查我需要IP地址。
-
再次,请澄清您的问题:发件人究竟是如何发送响应的? 无论如何,基于 IP 地址的身份验证并不安全。使用另一种机制,最好是提供者推荐的机制(参见 vlad b.'s answer)。
标签: java http servlets http-headers remote-server