Eu tenho dois webapps WebApp1 e WebApp2 em dois domínios diferentes.
- Estou configurando um cookie no WebApp1 no HttpResponse.
- Como ler o mesmo cookie do HttpRequest no WebApp2?
Sei que parece estranho porque os cookies são específicos para um determinado domínio e não podemos acessá-los de domínios diferentes; No entanto, ouvi falar de cookies CROSS-DOMAIN que podem ser compartilhados em vários aplicativos da web. Como implementar esse requisito usando cookies CROSS-DOMAIN?
Nota: Estou tentando isso com os aplicativos da web J2EE
fonte
Como outras pessoas dizem, você não pode compartilhar cookies, mas pode fazer algo assim:
Claro, não é completamente seguro, e você precisa criar algum tipo de protocolo interno entre seus aplicativos para fazer isso.
Por fim, seria muito chato para o usuário se você fizer algo assim em todas as solicitações, mas não se for apenas a primeira.
Mas acho que não tem outro jeito ...
fonte
cookiebaker
seria melhor ;-)Tanto quanto eu sei, os cookies são limitados pela política de "mesma origem". No entanto, com o CORS, você pode receber e usar os cookies "Servidor B" para estabelecer uma sessão persistente do "Servidor A" no "Servidor B".
Embora isso exija alguns cabeçalhos no "Servidor B":
E você precisará enviar a sinalização " withCredentials " em todas as solicitações do "Servidor A" (ex:
xhr.withCredentials = true;
)Você pode ler sobre isso aqui:
http://www.html5rocks.com/en/tutorials/cors/
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS
fonte
Não existem cookies entre domínios. Você pode compartilhar um cookie entre
foo.example.com
ebar.example.com
nunca entreexample.com
eexample2.com
e por motivos de segurança.fonte
foo.example.com
ebar.example.com
?A solução mais inteligente é seguir o caminho do facebook. Como o facebook sabe quem você é quando visita um domínio? Na verdade, é muito simples :
O botão Curtir permite que o Facebook rastreie todos os visitantes do site externo, independentemente de clicarem ou não. O Facebook pode fazer isso porque eles usam um iframe para exibir o botão. Um iframe é algo como uma janela do navegador incorporada em uma página. A diferença entre usar um iframe e uma imagem simples para o botão é que o iframe contém uma página da Web completa - do Facebook . Não há muita coisa acontecendo nesta página, exceto o botão e as informações sobre quantas pessoas gostaram da página atual.
Então, quando você vê um botão de curtir no cnn.com, na verdade está visitando uma página do Facebook ao mesmo tempo. Isso permite que o Facebook leia um cookie no seu computador, que foi criado na última vez em que você fez login no Facebook.
Uma regra de segurança fundamental em todos os navegadores é que apenas o site que criou um cookie pode lê-lo mais tarde. E essa é a vantagem do iframe: ele permite que o Facebook leia seu cookie do Facebook, mesmo quando você está visitando um site diferente. É assim que eles o reconhecem no cnn.com e exibem seus amigos lá.
Fonte:
fonte
Faça o que o Google está fazendo. Crie um arquivo PHP que defina o cookie nos 3 domínios. Em seguida, no domínio em que o tema será definido, crie um arquivo HTML que carregue o arquivo PHP que define o cookie nos outros 2 domínios. Exemplo:
Em seguida, adicione um retorno de chamada de onload na tag body. O documento será carregado somente quando as imagens forem carregadas completamente, ou seja, quando os cookies forem definidos nos outros 2 domínios. Onload Callback:
Definimos os cookies nos outros domínios usando um arquivo PHP como este:
Agora, os cookies são definidos nos três domínios.
fonte
Você não pode compartilhar cookies entre domínios. No entanto, você pode permitir que todos os subdomínios tenham acesso. Para permitir que todos os subdomínios
example.com
tenham acesso, defina o domínio como.example.com
.Porém , não é possível dar
otherexample.com
acesso aosexample.com
cookies de.fonte
.google.com
cookies aparecem ao navegar no YouTube?Você pode tentar enviar o valor do cookie para outro domínio usando uma tag de imagem.
Sua milhagem pode variar ao tentar fazer isso porque alguns navegadores exigem que você tenha uma política P3P adequada no domínio WebApp2 ou o navegador rejeitará o cookie.
Se você consultar a política plus.google.com p3p, verá que a política deles é:
CP = "Esta não é uma política do P3P! Consulte http://www.google.com/support/accounts/bin/answer.py?hl=pt_BR&answer=151657 para obter mais informações."
essa é a política que eles usam para seus botões de +1 para essas solicitações entre domínios.
Outro aviso é que, se você estiver em https, verifique se a tag da imagem está apontando para um endereço https, caso contrário os cookies não serão configurados.
fonte
Há uma visão geral decente de como o Facebook faz isso aqui no nfriedly.com
Há também a impressão digital do navegador, que não é a mesma coisa que um cookie, mas serve a um objetivo semelhante, pois ajuda a identificar um usuário com um grau razoável de certeza. Há um post aqui no Stack Overflow que faz referência a um método de impressão digital
fonte
Pode-se usar iframes invisíveis para obter os cookies. Digamos que existem dois domínios, a.com e b.com. Para o index.html do domínio a.com, é possível adicionar (observe a altura = 0 largura = 0):
Dessa forma, seu site receberá cookies b.com, pressupondo que http://b.com defina os cookies.
A próxima coisa seria manipular o site dentro do iframe por meio de JavaScript. As operações dentro do iframe podem se tornar um desafio se não for o proprietário do segundo domínio. Porém, no caso de ter acesso aos dois domínios, a página da web correta no src do iframe deve fornecer os cookies que você deseja obter.
fonte
Web.config
Inclua a origem da interface do usuário e defina Allow Crentials como true
fonte
Criei um módulo NPM, que permite compartilhar dados armazenados localmente entre domínios: https://www.npmjs.com/package/cookie-toss
Usando um iframe hospedado no Domínio A, você pode armazenar todos os seus dados de usuário no Domínio A e referenciá-los postando solicitações no iframe do Domínio A.
Assim, os domínios B, C etc. podem injetar o iframe e enviar solicitações para armazenar e acessar os dados desejados. O domínio A se torna o hub para todos os dados compartilhados.
Com uma lista de permissões de domínio dentro do Domínio A, você pode garantir que apenas seus sites dependentes possam acessar os dados no Domínio A.
O truque é ter o código dentro do iframe no domínio A, capaz de reconhecer quais dados estão sendo solicitados. O README no módulo NPM acima detalha o procedimento.
Espero que isto ajude!
fonte
Leia
Cookie
emWeb Api
fonte