Problema ao usar IE7 + Iframe + Session + Cookie + Domínio diferente (cross-domain)
Passei por um problema agora no sistema que faço para a Telequality que é chato e não tem muita coisa escrita sobre.
Quando você usa um iframe, a página de dentro do iframe está em um domínio diferente da página que possui o código iframe, e essa página interna usa session com cookies, o IE7 por padrão ignora o cookie silenciosamente.
Isso pode acontecer no IE6 dependendo das configurações de segurança, mas não acontece por padrão, pois as configurações que vêm de fábrica são mais tranquilas do que aos do IE7.
Para corrigir o problema, é necessário enviar um header com as diretivas de segurança P3P na página que é chamada dentro do iframe.
No meu caso era um PHP e por isso inclui a seguinte linha no código:
A linha seguinte diz para o navegador que o site fornece acesso a própria conta de informação (CAO), que os dados analisados são somente “pseudo-analisados” o que significa que os dados estão conectados à sua persona on-line e não à sua identidade física (PSA) e que os dados não são fornecidos para quaisquer agências externas para uso de tais agências (OUR).
Com isso o IE para de frescura e aceita os cookies dentro do iframe.
Abraços e até a próxima.








Muito bom, não sabia disso. Valeu a dica!!!
Estou com problemas em uma página que abre outra em um popup que tenho que transferir dados entre elas por sessaõ. No firefox funciona. Não consegui resolver isto com sua dica, mas acho que é por ai. Poderia me ajudar?
Vera,
O caminho não tem nada haver com que escrevi aqui.
Tente este link: http://www.irt.org/articles/js205/index.htm
Abraços
Olá Rafael.
Estou desenvolvendo uma Intranet para uma empresa e fiz um menu em asp que utiliza iframe e Java script para receber o cabeçalho do sql server e mostrar abrindo e fechando.
No meu computador que é um Windows XP com IE7 funciona perfeitamente.
Em meu outro computador que é XP e IE6 ou Firefox funciona também.
No entanto, no servidor deles que é Windows 2003 R2 e IE7, simplesmente ao entrar na instrução iframe ele fica esperando resposta da página e assim não abre o menu.
O que você acha que poderia ser?
Me responda por e-mail.
Muito obrigado.
Daniel,
Podem ser muitas coisas, mas neste caso parece ter haver apenas com a parde server-side. Só debugando o código mesmo.
Abraços
Rafael você poderia colocar um exemplo aqui??
muito obrigado!!!
Oi Luiz,
Exemplo de que especificamente? A situação não é um código em si…
Pode ser qualquer programação que utilize Cookies ou Sessions que esteja rodando dentro de um frame que está em outro domínio.
Abraço
Parabéns pela dica!
Resolveu meu problema.
Marcos
Parabéns e obrigado.
Resolveu meu problema.
Minha página está em ASP e ficou assim:
Response.AddHeader “P3P”, “CP=”"NOI CUR OUR IND UNI COM NAV INT”"”
Meu velho, tu não imagina a mão na roda que tu me deu com essa dica… Meus sinceros agradecimentos…
estou tendo um probleminha com uma pagina html,
to usando o iframe, que abre no firefox normalmente mas não abre no ie7, ser que vc pode me ajudar?
Marcos,
Infelizmente não posso ajudar com questões específicas. Espero que compreenda.
Muito Obrigado Rafael.
Resolveu de imediato.
abs
Cara, salvou, sem comentários. =]
Estou desenvolvendo um sistema para uma empresa utilizando PHP Mysql, o qual é o programa de controle e gerenciamento de toda a empresa. Como são varios usuarios com permissões diferentes, estou usando session para transmitir alguns dados e fazer o controle de usuário. Eu estava utilizando composição da pagina etraves de chamada na url ex.: “comercial.com.br?sc=clientes” e dentro da pagina tinha uma chamada para “sc”, a questao é a seguinte nem sempre o usuario faz logout, muitas vezes eles simplesmente fecham a aba ou o novegador, e em algumas situações a session não é destruida então se algem utilizasse o computador e tentasse entrar direto na pagina interna poderia conseguir, ja que a sessiom tinha dados de usuario e login, então resolvi inserir na pagina mestre um script que encerra session ao fechar aba ou navegador a questao é que cada vez que o usuaio clica em um link da propria pagina ela atualiza e faz o onbeforeunload destruindo a sessção e obrigando o usuario a logar novamente.entao estou tentando fazer a navegação com iframe pois o link quando clicado chama a pagina secundaria ex.:clientes.php dentro do iframe e nao gera o refresh da pagina mestre assim o usuario navega o quanto quiser e quando sair, independente da forma, a sessão é encerrada. Bom, a pergunta é que tipo de vulnerabilidades posso ter usando iframes? se tiver alguma idéia o sugestao sobre o assunto.
Desdeja agradeço sua atenção
Poxa, que coisa chata o i.e… mas vc me salvou tbm colega!! Muito obrigado por compartilhar.
Como seria esse código no caso de uma pagina em html? Tenho o mesmo problema!
desde já agradeço!
Bom dia Rafael,
No meu caso, a aplicação que está sendo executada dentro do iframe é de outra empresa (eu não tenho acesso aos arquivos da aplicação que está dentro do iframe) …
será que existe uma forma de sanar este problema usando o P3P ??
Nossa.. se tivesse a conta online mandava um troco hhehehhee…
uso o iframe para “maquear” um subdominio…
Criei um domínio e para ele tem redirecionamento de subdomínio (*) para um arquivo com iframe.. este le o endereço e manda para outro endereço com variável GET… e tava a uma semana me encomodando.
Muito boa a dica.
Obrigado
brother, nem tou usando iframe, na verdade estava tentando um problema de sessions no IE (por causa de configurações de segurança e privacidade), coloquei essa linha e o negoço funcionou! kkkk
Magica! vlw d+++
Cara,, como o cara disse no comentario anterior, mágica.
Eu nem tentei entender, eu só sei que eu colei e funcionou.
Muito obrigado cara
Oi Rafael.
Coloquei esse header no meu sistema, e liberou o uso de cookies (a sessão do iframe se mantém). Porém o IE não está permitindo nenhuma atividade AJAX.
Já viu este problema? Sabe solucioná-lo?
Desde já grato
Eric,
Talvez isso tenha a ver com Ajax Cross Domain, procure ver se é isso.
Abraço
Oi Rafael!
Eu me equivoquei: Realmente estava com problema ao manter a sessão, mas não havia problema com ajax, até mesmo não faço requisições cross domain. Na verdade era uma configuração do sistema que eu tinha me esquecido de ajustar.
De qualquer forma, valeu pela ajuda.
abraço.
Oi Rafael! Excelente post. É um assunto que realmente não é muito abordado, parabéns pela iniciativa. Pelo que eu entendí deve-se colocar este código no arquivo que vai rodar no iframe. É isso? No meu caso o problema não é iframe, e sim um redirecionamento que faço para um site externo, e retorna resposta para meu site, infelizmente algumas pessoas me relatam não recuperar as sessions. Na prática é:
PAGINA1(DADOS CLIENTE)> PÁGINA2(CRIA AS SESSIONS)> SITE CIELO> PÁGINA3 (RECUPERA AS SESSIONS)
Na página3 é que não consigo recuperar. O pior é que é instável. tem vezes que consigo recuperar, vezes não. Isso que é estranho.
Valeu pela força!
Lucas,
Não dá pra saber o que é no seu caso. Você precisa debugar mesmo.
Abraço
Cara, você me ajudou muito com sua dica.
Valeu.
Cara parabéns, ajudou a min e tenho certeza que a muitos outros.
Obrigado! Abraços
Bom dia Rafael
Seu post me ajudou muito, parabéns pela dica!
Abração
Xan
Me ajudou muito!!
No meu caso foi em jsp que é assim:
response.setHeader(“P3P”,”CP=’IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT’”);
Valeu!
Olá pessoal, estou com u problema com meu site no IE. A segunda busca que faço no meu site no IE sempre retorna os dados da primeira busca. Nunca atualiza as buscas… só no IE. Alguem poderia me ajudar
Att.
Julio César
julio731@hotmail.com
julio0345@gmail.com
Abraços
meu site é:
http://www.seminovosdivinopolis.com.br. Tinha preenchido mas nao apareceu.
Vlw. salvou minha pele!!!
Cara, muito obrigado por compartilhar esta informação! Estava com este mesmo problema e queimando os neurônios para entender o que o bendito IE estava fazendo… inseri o código no header e agora tenho acesso a aplicação perfeitamente!
Atitudes como a sua é que fazem da net um lugar espetacular… parabéns pela iniciativa.