问题描述
|
我似乎回想起,在公开关注了Facebook Apps的隐私问题并泄露了Facebook宣布正在考虑进行更改的用户ID之后。如果我记得,此更改将是Apps将接收重写的用户ID,而不是实际的用户ID。有什么事吗链接到官方声明和/或开发人员文档来阐明这一点将不胜感激。
简而言之,我想构建两个彼此密切相关的独立应用程序,并且希望能够在这两个应用程序之间交叉引用用户ID。有最佳做法吗?
解决方法
看一下这篇博客文章,它应该提供一些指导。
https://developers.facebook.com/blog/post/431/
目前,我们向iframe应用程序传递了网址中的“ 0”查询字符串参数。这使应用程序可以识别用户并创建自定义的社交体验。由于浏览器的工作方式,当有人单击iframe中的链接时,URL中的此信息可能会无意中传递到HTTP Referrer标头中。
我们最初针对此问题的建议使用加密作为防止这种无意共享的手段,但仍在URL中传递了此加密的UID。与社区讨论后,我们更新了提议的解决方案,以使用不同的机制,该机制可以为用户提供更好的保护,同时最大程度地减少对现有应用程序的影响,并且无需使用加密库。
简而言之,此新建议将UID嵌入HTTP POST正文中,以确保无论在任何HTTP Referrer标头中都不会公开UID(无论是加密的还是其他方式)。为此,我们创建一个针对应用程序Canvas URL的ѭ1do元素:
<form target=\"canvas_iframe\" action=\"http://example.com/\" id=\"canvas_form\">
<input name=\"fb_sig_user\" value=\"1234\" type=\"hidden\" />
</form>
<iframe name=\"canvas_iframe\"></iframe>
<script>
document.getElementById(\"canvas_form\").submit()
</script>