我担心的是,如果有人窃取了这个 url ( https://example.com/retrieveData.php ),他可以手动发送虚假的 post 请求并且可以窃取返回的用户信息吗?
你的担心是对的。除非您检查授权请求的请求的某些部分,否则任何人都可以向该 URL 发送消息并获得结果。
例如,您可以进行身份验证以检查请求是否来自用户,然后根据用户应该有权访问该信息的想法授权请求。
或者,您可以根据只有有效请求者才能通过共享机密知道的内容进行授权,并依靠https该 URL 的一部分来防止共享机密公开。您将秘密提供给受信任的合作伙伴,当您通过 PHP(也通过 HTTPS 保护)生成 Web 表单时,您会包含一个包含共享秘密的隐藏输入。这就是XSRF保护通常的工作方式。
你应该考虑以下几点:
- 谁应该能够合法地访问此页面?通过您的手机应用程序进行交互的登录用户、可以保护秘密的合作伙伴、Web API 用户?
- 他们有什么凭据可以使用您服务器的其他部分?登录cookies?XSRF 代币?合作伙伴代币?
- 您的应用程序的哪些部分仅通过安全通道发送,例如
https?
如果 (2) 中的某些凭据子集满足所有 (1) 的要求,并且这些凭据仅通过 (3) 发送,那么您只需在页面中检查 (2)。否则,您需要重新设计您的应用程序架构,直到实现这一点。
OWASP 有一个授权指南可能会派上用场,他们也有许多关于审查授权代码的页面,但大多数示例都不是 PHP 特定的。