【发布时间】:2012-03-18 12:42:52
【问题描述】:
我有一个 Facebook 应用程序,在许多页面上都安装了一个页面选项卡。
我知道我可以解析服务器端、signed_request 并在页面上拥有我需要的所有数据、当前用户等。
但是,我只需要知道页面 ID,甚至页面 URL,使用客户端 JS(因此,无法访问通过 POST 发送的 signed_request,没有 PHP 或其他服务器端语言)。
有没有办法单独获取这些信息?即使未签名且不安全?
我真的很想知道在设置服务器端进程之前是否有可能,但是即使答案是“不,你不能这样做”,请给出一些动机,说明为什么唯一的方法是知道当前页面应该是服务器端脚本,如果 Facebook 提供一种以不安全的方式了解当前页面的方法,可能会出现什么安全违规行为。
【问题讨论】:
-
我尝试使用document.referrer,但是由于Facebok使用代理PHP来加载iframe,所以这不是获取当前页面URL的方法。
-
在您的场景中,您无法访问 php 或其他服务器端语言吗?您可以将signed_request 输出为javascript 变量吗?或者这是不可行的?我知道你说你想要一个仅限 JS 的解决方案,我只是不知道为什么。如果您能以某种方式将signed_request 输出到javascript,那么您可以继续在javascript 中进行解析。
-
Simone,并不是说它是安全的。只是facebook没有以任何其他方式提供页面ID。这就是为什么没有办法解决它。您仍然可以使用 CDN 来提供页面选项卡,您只需要一个带有某种 php(或其他后端语言)的页面来捕获页面 id,然后将其转发到您的 CDN。
-
如果那是您的不二之选,那么您只需向 developers.facebook.com/bugs 提交功能请求即可。
-
@CoderFromOuterSpace 归档,谢谢。