4

我在 Facebook 中工作(使用 Koala gem),最后不得不处理更改密码的用户。虽然这可能不是最好的交互,但我的应用程序会捕获身份验证更改并为用户提供一个链接以单击以重新授权。点击链接正确命中 FB 和重定向传递预期的 auth_code。但是,响应 FB 重定向而传递的页面返回时 X-Frame-Options 设置为 DENY,结果用户永远不会看到重新身份验证结果。

我不知道为什么 X-Frame-Options 设置为 DENY。

我尝试在 Rails (3.2.6) 应用程序中将 X-Frame-Options 设置为 SAMEORIGIN,方法是将以下行添加到操作中:

response.headers['X-Frame-Options'] = 'SAMEORIGIN'

没运气。

我还尝试通过 Apache 调整响应标头。我已经尝试为整个站点设置 X-Frame-Header 以及定位可能受到影响的特定 url。当前配置如下所示(已编辑):

<VirtualHost *:443>
   ServerName xx.xx.com
   DocumentRoot /apps/fb-publisher/current/public
   PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.2-p290@rails3/ruby
   ... SSL config ...
   <Location ~ "/publisher/(revalidate|new)">
      Header set X-Frame-Options SAMEORIGIN
   </Location>
   <Directory /apps/fb-publisher/current/public>
      ...
   </Directory>
</VirtualHost>

我在这里的尝试是强制 X-Frame-Options 为 xx.xx.com/publisher/new 和 xx.xx.com/publisher/revalidate 的 SAMEORIGIN。除了当前配置之外,我还尝试了针对各个 URL 的单独 Location 和 LocationMatch 块。我还尝试使用未设置的 Header(而不是设置)来删除 X-Frame-Options,但是它正在被设置。

据我所知,这些是应用程序中唯一将 X-Frame-Options 标头设置为 DENY 的 url。

想法?

4

0 回答 0