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

我需要脚本来验证其处理的请求是否来自网关和正确的网关。这样一来,就不允许从其他人的网关推送数据或仅使用Web浏览器传递假数据。但是如何构建呢?

我提出了以下解决方案:


检查HTTP标头以查看使用了什么用户代理。
验证IP地址,因为该地址已保存在数据库中。
使用令牌系统。


我知道IP地址检查不是一个很好的解决方案,因为公共ip可能会更改或被其他人使用。但是最好的解决方案是什么?你们在令牌系统上有任何提示或示例代码吗?谢谢你的帮助。

最佳答案

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

关于php - 如何验证请求来自PHP中的某个网关?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11669754/

10-13 22:52