Aplicativos do Rails 4 para Facebook

[Leia: aplicativos baseados em iframe do Rails 4]

O Rails 4 vai além para consertar seus “padrões inseguros”. Entre essas correções estão as alterações nos cabeçalhos padrão incluídos nas respostas. Esses novos cabeçalhos causarão problemas ao criar aplicativos do Facebook (ou qualquer aplicativo que more dentro de um iframe).

Os novos cabeçalhos em questão:

# actionpack/lib/action_dispatch/railtie.rb (L20)
config
.action_dispatch.default_headers = {
'X-Frame-Options' => 'SAMEORIGIN',
'X-XSS-Protection' => '1; mode=block',
'X-Content-Type-Options' => 'nosniff'
}

O novo cabeçalho “X-Frame-Options” permite apenas solicitações de iframe em que a janela principal está no mesmo domínio. Isso obviamente causa problemas, pois a janela pai de um aplicativo do Facebook é “apps.facebook.com”.

Existem algumas maneiras de corrigir isso flutuando na web, mas tive problemas com todas elas. Descobri que a maneira mais simples e eficaz de corrigir o problema é simplesmente remover o cabeçalho por completo.

Simplesmente substitua os cabeçalhos padrão removendo “X-Frame-Options” em seu config / application.rb:

# config/application.rb
config
.action_dispatch.default_headers = {
'X-XSS-Protection' => '1; mode=block',
'X-Content-Type-Options' => 'nosniff'
}

Se você tiver uma maneira mais eficaz, por favor me avise.

Boa sorte!