2

我正在寻找一个好的实现来保护我用 PHP 编写的后端。

设想:

服务器 1 (www.domain.com) 仅向客户端提供 JS/HTML 服务器

服务器 2 (www.domain2.com) 正在运行一个 PHP 服务器,它使用 JSON 数据响应服务器 1(由 Sevrer1 上的 Javascript 模板引擎呈现)。

如何阻止其他人从 Server1 获取 JSON 响应?我知道我可以添加某种 API 密钥,但它存储在 JS 中(每个人都可以阅读),我知道我可以检查请求是否来自服务器 1 IP,但伪造这样的请求并不是什么大问题。

4

3 回答 3

1

为什么不创建一些短期令牌并仅在服务器端共享它们,然后嵌入到 JS 代码中?

资源

于 2013-06-17T16:38:14.617 回答
1

从 Server1 到 Server2 进行内部调用是一种解决方案,不将 Server1 暴露在 Internet 上,并将其添加到专用网络可能会有所帮助。

即使有人解决了问题,您也可以添加验证,例如确保请求来源来自授权来源(在您的情况下为 Server2)。如果请求来源来自其他来源,则直接返回而不进行处理。

如果您仍然对此感到偏执,您可以随时添加更多机制,例如基于哈希的消息身份验证代码

于 2012-11-13T13:59:25.703 回答
1

您可以做的一件事是在服务器 1 上创建一个会话 cookie,并同时将该会话值存储在服务器 2 上的数据库中。每当有人从服务器 1 发出请求时,您都会在请求中附加 cookie 值并将其发送到服务器 2在进行 API 调用时。仅当传入会话 ID 与存储在数据库中的会话 ID 匹配时,服务器 2 才返回 JSON。

这不是万无一失的。有人可以破解 cookie,一旦用户注销,您将需要清除会话。

正如您所提到的,另一种方法是在服务器 1 上使用服务器端脚本语言。

于 2012-11-13T14:11:10.543 回答