我正在为 facebook 开发一个画布应用程序,我想阻止用户直接从画布 URL 访问应用程序(尽可能,我意识到这可能不是 100% 的时间)并强制用户访问应用程序来自apps.facebook.com/foo。
我正在使用 php 开发应用程序,我的第一个想法是检查 $_POST 数组中的“signed_request”,这是从 facebook 传递到画布应用程序的值,如果该值不存在但出现,则发送重定向此值仅传递一次,当用户单击我的应用程序中的不同链接时,不会再次传递“signed_request”参数。
我是否可以合理地信任“HTTP_REFERER”来验证用户正在从http://apps.facebook.com/foo访问应用程序并在 HTTP_REFERER 不等于该值时重定向用户?
编辑:我实际上刚刚注意到,在apps.facebook.com/foo 的应用程序的原始请求中,HTTP_REQUEST 标头等于'apps.facebook.com/foo' 但是当用户单击应用程序中的链接时HTTP_REQUEST变得等于画布 url。