2

我正在使用一项名为I'm PDF的简单服务在在线发票上创建 PDF 版本。现在,客户端必须登录才能看到在线版本,但结果,api服务也无权访问它。我如何检测到 pdf 服务正在访问该站点并相应地允许它而不需要密码?

我以为 $_Server['http_referrer'] 会这样做,但我没有运气。我什至不确定变量是什么,所以每当访问该页面时,我都会通过电子邮件将 var_dump($_Server) 发送给我。当我转到页面时它发送得很漂亮,但是当生成 pdf 时,没有运气。

有任何想法吗?

谢谢你的帮助!

4

3 回答 3

4

您需要识别用户。此服务的唯一方法似乎是将某些内容附加到 pdf URL(GET 参数)。

因此,在服务器端创建一些秘密,用它签署用户 ID,将其附加到 impdf URL 并根据请求使用您的秘密对其进行解析。您最终将获得可用于授权的用户 ID。

于 2012-10-15T02:12:10.200 回答
3

您是否尝试过查看 IP 地址?

该服务可能从相同的 IP 地址(或地址范围)访问该站点。如果是这种情况,那么您所要做的就是检查请求的远程 IP 地址,我相信这$_SERVER['REMOTE_ADDR']适用于 PHP。

不过,我还应该提到 IP 地址ACL并不完美,因为 IP 地址可能会被欺骗。除非对进出网络的数据包有绝对的控制(或安全保证),否则它们可能不应该过于依赖安全性。也就是说,它们很可能足以满足您的“简单”安全要求。

绕过HTTP 引用非常简单。因此,它对安全性不够可靠,应该持保留态度。

于 2012-10-16T04:06:51.133 回答
0

我不会接受上述任何建议。基本上它们都会降低您的安全措施。

我会使用诸如 PDFmyURL 的 API 之类的 API,它允许您通过多种标准方式直接登录。这确保您不必构建任何新内容。

直接链接到访问安全区域的部分:PDFmyURL API 文档

披露:我为拥有这项服务的 Kaiomi 工作。

于 2014-09-19T10:29:34.147 回答