我构建了一个 Web 应用程序,允许用户从家里查看一些数据。在家里,每个用户都有一个网关将这些数据发布到 php 脚本。然后该脚本将数据插入到我的 MySQL 数据库中。
我需要脚本来验证它正在处理的请求是否来自网关和正确的网关。这样就不允许从别人的网关推送数据或仅使用网络浏览器传递虚假数据。但如何构建这个呢?
我想出了以下解决方案:
- 检查 HTTP header 以了解使用的用户代理。
- 验证 IP 地址,因为该地址已保存在数据库中。
- 使用 token 系统。
我知道 IP 地址检查不是一个很好的解决方案,因为公共(public) IP 可能会更改或被其他人使用。但最好的解决方案是什么?你们有关于 token 系统的任何提示或示例代码吗?感谢您的帮助。
最佳答案
最好的解决方案是第三种, token 系统,因为用户代理可以使用浏览器插件或其他方式更改,IP地址可以是动态的,即使您同时使用用户代理和IP地址检查,您也有很大的机会来识别用户错误。但在使用 token 系统的情况下,当 token 将动态生成并且仅在下一个请求时有效,这将使您的应用程序更加安全。 Here's一个很好的例子:
关于php - PHP中如何验证请求来自某个网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11669754/