Digamos que eu tenha um site chamado a.com
e, quando uma página específica deste site é carregada, digamos link da página, gosto de definir um cookie para outro site chamado b.com
e redirecione o usuário para b.com
.
Quero dizer, na carga de a.com/link
eu quero definir um cookie para b.com
e redirecionar o usuário b.com
.
Eu testei e o navegador realmente recebeu o cookie de a.com/link
, mas não o enviou na solicitação de redirecionamento b.com
. Isso é normal?
Podemos definir cookies para outros domínios?
javascript
cookies
redirect
Rasoul Zabihi
fonte
fonte
Respostas:
Você não pode definir cookies para outro domínio. Permitir isso apresentaria uma enorme falha de segurança.
Você precisa obter b.com para definir o cookie. Se o a.com redirecionar o usuário para
b.com/setcookie.php?c=value
O script setcookie pode conter o seguinte para definir o cookie e redirecionar para a página correta em b.com
fonte
Semelhante à resposta principal, mas em vez de redirecionar para a página e vice-versa, o que causará uma experiência ruim ao usuário, você pode definir uma imagem no domínio A.
E então, no domínio B, que é exemplo.com, em cookie.php, você terá o seguinte código:
Hattip para Subin
fonte
Probaly você pode usar
Iframe
para isso. O Facebook provavelmente usa essa técnica. Você pode ler mais sobre isso aqui . O Stackoverflow usa uma técnica semelhante, mas com armazenamento local em HTML5, mais sobre isso em seu blogfonte
Definir cookies para outro domínio não é possível.
Se você deseja passar dados para outro domínio, pode codificá-los no URL.
fonte
Você não pode, pelo menos não diretamente. Isso seria um risco de segurança desagradável.
Embora você possa especificar um atributo Domínio , a especificação diz "O agente do usuário rejeitará os cookies, a menos que o atributo Domínio especifique um escopo para o cookie que incluiria o servidor de origem".
Como o servidor de origem é
a.com
e não incluib.com
, ele não pode ser definido.Você precisaria
b.com
definir o cookie. Você pode fazer isso via (por exemplo) redirecionamentos HTTP parab.com
e para trás.fonte
evil-hack.com
poderia ter um cookie definido paratheir-favourite-website.com
isso mudaria suas preferências naquele site.Caso você tenha
a.my-company.com
e, emb.my-company.com
vez de apenas,a.com
eb.com
possa emitir um cookie para o.my-company.com
domínio - ele será aceito e enviado para os dois domínios.fonte
veja RFC6265 :
Mas a solução alternativa mencionada acima com image / iframe funciona, embora não seja recomendada devido à sua insegurança.
fonte
Você não pode, mas ... Se você possui as duas páginas, então ...
1) Você pode enviar os dados através de parâmetros de consulta ( http://siteB.com/?key=value )
2) Você pode criar um iframe do Site B dentro do site A e pode enviar mensagens de postagem de um lugar para outro. Como o Site B é o proprietário dos cookies do site B, ele poderá definir qualquer valor necessário ao processar a mensagem de postagem correta. (Você deve impedir que outros remetentes indesejados enviem mensagens para você! Isso depende de você e do mecanismo que você decide usar para impedir que isso aconteça)
fonte
Neste link, encontraremos a solução Link .
fonte
Envie uma solicitação POST de A. As solicitações de postagem estão apenas no servidor e não podem ser acessadas pelo cliente.
Você pode enviar um pedido POST a partir
a.com
deb.com
usar CURL (recomendado, serverside) ou um escondidomethod="POST"
forma (clientside). Se você optar pelo último, poderá ofuscar seu JavaScript para que o usuário não seja capaz de entender o algoritmo e interferir nele.Crie um gateway
b.com
para definir cookies:Se você deseja levar a segurança um passo adiante, implemente uma função nos dois lados (
a.com
eb.com
) para criptografar (ativara.com
) e descriptografar (ativarb.com
) dados usando um código criptográfico.Se você estiver tentando fazer algo que deve ser absolutamente seguro (por exemplo, transferir uma sessão de login), tente oAuth ou inspire-se em https://api.cloudianos.com/docs#v2/auth
fonte