奇怪的网址附加"#_ = _"

boo*_*dev 34 facebook facebook-oauth facebook-php-sdk

可能重复:
播放框架附加#=在Facebook验证后通过OAuth2重定向?

还有其他人看到过这种情况吗?

我正在使用Facebook PHP SDK和一些Javascript构建一个Facebook画布应用程序.
现在当我带领用户完成OAuth身份验证流程时,我注意到浏览器中的URL会自动附加到此"#_=_",因此我的URL开始如下所示:

http://apps.facebook.com/xxxxxxxxxxxx/#_=_
Run Code Online (Sandbox Code Playgroud)

当我重定向到应用程序配置文件页面时,URL是这样的:

http://www.facebook.com/apps/application.php?id=xxxxxxxxxxxx#_=_
Run Code Online (Sandbox Code Playgroud)

我正在重定向使用

echo "<script type='text/javascript'>top.location.href='$appcanvasurl';</script>"
Run Code Online (Sandbox Code Playgroud)

到画布URL,和

echo "<script type='text/javascript'>top.location.href='$appprofurl';</script>"
Run Code Online (Sandbox Code Playgroud)

对于应用资料页面.

那为什么会#_=_附加?

更新:

根据跟踪器上的这个错误,这是设计的,并给出一个值redirect_uri不会改变这一点.

并根据该页面上官方Facebook回复(必须登录Facebook查看帖子):

这被标记为"按设计",因为它可以防止潜在的安全漏洞.

某些浏览器会将URL中的哈希片段附加到已重定向到的新URL的末尾(如果新URL本身没有哈希片段).

例如,如果exam​​ple1.com返回到example2.com的重定向,那么访问example1.com#abc的浏览器将转到example2.com#abc,而example1.com上的散列片段内容可以访问example2上的脚本.COM.

由于可以将一个auth流重定向到另一个,因此可以从一个应用程序访问另一个应用程序的敏感身份验证数据.

通过将新的哈希片段附加到重定向URL来缓解此问题,以防止此浏览器行为.

如果关注结果URL的美学或客户端行为,则可以使用window.location.hash(甚至是您自己的服务器端重定向)来删除有问题的字符.

mjs*_*mjs 17

请参阅:https: //developers.facebook.com/blog/post/552/

会话重定向行为的更改

本周,#_=_当此字段留空时,我们开始向redirect_uri 添加片段.请确保您的应用可以处理此行为.


归档时间:

查看次数:

22247 次

最近记录:

11 年,11 月 前