231 votes

Comment définir un cookie pour un autre domaine

Supposons que j'ai un site Web appelé a.com, et lorsqu'une page spécifique de ce site est chargée, par exemple, un lien de page, j'aime définir un cookie pour un autre site appelé b.com, puis rediriger l'utilisateur vers b.com. Je veux dire, en charge de a.com/link, je veux définir un cookie pour b.com et rediriger l'utilisateur vers b.com. Je l'ai testé et le navigateur a effectivement reçu le cookie de a.com/link, mais il n'a pas envoyé ce cookie lors de la demande de redirection à b.com. Est-ce normal?

Peut-on créer des cookies pour d'autres domaines?

170voto

qbert220 Points 5029

Vous ne pouvez pas définir de cookies pour un autre domaine. Permettre cela présenterait un énorme défaut de sécurité.

Vous devez obtenir b.com pour définir le cookie. Si un.com redirige l'utilisateur vers b.com/setcookie.php?c=value

Le script setcookie peut contenir les éléments suivants pour définir le cookie et rediriger vers la page correcte sur b.com

 <?php
    setcookie('a', $_GET['c']);
    header("Location: b.com/landingpage.php");
?>
 

21voto

Ondrej Bozek Points 1988

Vous pouvez probablement utiliser Iframe pour cela. Facebook utilise probablement cette technique. Vous pouvez en lire plus ici . Stackoverflow utilise une technique similaire, mais avec le stockage local HTML5, vous en saurez plus sur leur blog

12voto

Quentin Points 325526

Tu ne peux pas. Ce serait un risque de sécurité méchant.

6voto

Patrik Points 1719

La configuration de cookies pour un autre domaine n'est pas possible.

Si vous souhaitez transmettre des données à un autre domaine, vous pouvez l'encoder dans l'URL.

 a.com  ->  b.com/redirect?info=some+info (and set cookie) -> b.com/other+page
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X