Comment passer le cookie Kameleoon en sécurisé

Publié par Adrien Millet le 14 décembre 2020

A l'heure où nous écrivons ces lignes, le cookie kameleoonVisitorCode qui est déposé par défaut par le script Kameleoon n'est pas sécurisé

Nous allons ici vous présenter la méthode pour passer le cookie kameleoonVisitorCode en sécurisé via une requête PHP.

Pour cela, nous allons utiliser une partie du script PHP de la la documentation Kameleoon.

J'ai modifié ce script, notamment pour que le cookie kameleoonVisitorCode soit sécurisé, et ce code devient alors

< ?php
$topLevelDomain = "VOTRENOMDEDOMAINE";// A remplacer par votre nom de domaine ; dans mon cas de figure : "eloquentdata.fr"
$visitorCode = NULL;


​ if (isset($_COOKIE["kameleoonVisitorCode"])){
$value = $_COOKIE["kameleoonVisitorCode"];


if (strpos($value, "_js_") !== false){
$visitorCode = substr($value, 4);
}
else{
$visitorCode = $value;
}
}
if (is_null($visitorCode)){
$alphabet = "abcdefghijklmnopqrstuvwxyz0123456789";
$alphabetLength = strlen($alphabet);
$visitorCode = "";


for ($i = 0; $i < 16; $i++){
$randomNumber = floor((mt_rand() / mt_getrandmax()) * $alphabetLength);
$visitorCode .= substr($alphabet, $randomNumber, 1);
}
}

setcookie("kameleoonVisitorCode", $visitorCode, time() + 32832000, "/", $topLevelDomain, true);
?<

Ensuite vous devez insérer ce code PHP sur l'ensemble des pages de votre site, tout comme le script Kameleoon

Vous allez donc insérer un script php, qui va manipuler un cookie, et voici les subtilités à avoir en tête

  • Ce script doit être inséré avant la balise <html>, avant même le <!DOCTYPE html>, sinon il ne fonctionnera pas
  • Comme ce script doit être inséré sur toutes les pages, je vous conseille de passer par un php include

Dans l'exemple suivant, notre fichier comportant le script php permettant de fixer le cookie kameleoonVisitorCode en sécurisé s'appelle "beforeAll". On obtient donc le code suivant :

< ?php include "beforeAll.php" ; ?> < !DOCTYPE html> < html lang="en"> < head>

Avec le fichier beforeAll.php qui contient le code php que je vous ai présenté en début d'article.

Et voilà