如何验证请求来自PHP中的某个网关?

时间:2012-07-26 12:53:39

标签: php mysql token gateway gateways

我构建了一个Web应用程序,允许用户从家中查看一些数据。在家里,每个用户都有一个网关,将这些数据发布到PHP脚本。然后该脚本将数据插入我的MySQL数据库。

我需要脚本来验证它处理的请求来自网关和正确的网关。通过这种方式,不允许从某个elses网关推送数据或仅使用webbrowser传递虚假数据。但是如何建立这个?

我提出了以下解决方案的想法:

  1. 检查HTTP标头以查看使用的用户代理。
  2. 验证IP地址,因为它保存在数据库中。
  3. 使用令牌系统。
  4. 我知道IP地址检查不是一个非常好的解决方案,因为公共IP可能会被其他人更改或使用。但什么是最好的解决方案?你们在令牌系统上有任何提示或示例代码吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

最好的解决方案是第3,令牌系统,因为用户代理可以使用浏览器插件或其他方式更改,IP地址可能是动态的,即使你同时使用用户代理和IP地址检查,你也有很大的机会识别用户错误。但是在使用令牌系统的情况下,当令牌将动态生成并且仅用于下一个请求时,它将使您的应用程序更安全。 Here's一个很好的例子: