Pages :
Bonjour à tous
En utilisant le débogueur de FireFox je vois apparaître un warning:
Le cookie « user » sera bientôt rejeté car son attribut « sameSite » est défini sur « none » ou une valeur invalide, et sans attribut « secure ». Pour en savoir plus sur l’attribut « sameSite », consultez  https://developer.mozilla.org/docs/Web/HTTP/Cookies

A la lecture de la page en question je ne suis pas plus avancé sur la question qui me préoccupe: que faut il faire pour être conforme à cette nouvelle norme
1) en javascript côté client
2) en PHP côté serveur
Avez vous de l'info à ce sujet?
Bonjour,

j'ai résolu ce problème en ajoutant ceci à mon .htaccess
 <IfModule mod_headers.c>
  Header always edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure
</IfModule>

Il semble toutefois que cela pose de nouveaux problèmes avec certains navigateurs, il faudra donc peut-être conditionner en fonction du HTTP_USER_AGENT dans un premier temps

Portez-vous bien
Merci de vos réponses
L’avertissement dit que le cookie sera bientôt rejeté. C’est du même type que les avertissements qui nous ont pratiquement forcés à passer de http à https.
Ma question c’est "comment créer un cookie à la nouvelle norme" ? Je n’ai rien trouvé de clair sur le sujet
Apparemment il s’agit d’un autre point, en gros si je comprends bien il s’agit d’empêcher un site de récupérer les cookies du voisin. Je ne savais même pas que c’était possible et je suis tout à fait d’accord pour protéger mes deux malheureux cookies de toute divulgation, mais je ne comprends pas comment faire.
Ce que tu me dis est également ce que je crois, mais le problème n’est pas (plus) là
Il s’agit s’ajouter un attribut "SameSite" à un cookie et je n’ai pas trouvé comment faire.
C’est comme https: même si tu as un site qui ne fait qu’afficher des infos et donc n’utilise pas le cryptage, il faut le passer en https sinon il est marqué comme suspect dans la barre du navigateur. Je crois avoir compris que ça sera la même chose avec les cookies.
J’ai lu quelque part que c’est une façon pour BigBrother (Google) d’empêcher les autres sites de profiter des infos qu’il pompe. Je ne sais pas comment ils font ça mais je fais confiance à la sagacité des informaticiens pour trouver des failles...
Dans les sites que je gère, la CNIL n'est pas ma préoccupation.
Ces sites ne font pas de commerce, ne demandent aucune information à l'utilisateur lambda et demandent aux abonnés identifieur et mot de passe, point barre.
Il n'y a que deux cookies:
1) l'identifieur de l'utilisateur
2) un flag pour dire qu'on ne veut pas entendre le morceau de musique que, comme tout site de chorale, nous nous sommes sentis obligés d'y mettre
Rien qui vaille la peine de préoccuper les autorités.

Par contre il y a une autorité dont je me passerais bien, à savoir Google qui régente le web en pratique.

Si un site n'est pas en https, la barre de navigation a l'allure suivante;
upload/1589713657-48769-navigation.png
ce simple verrou barré suffit à faire fuir les visiteur, outre que Google ne va pas se priver de pénaliser le site dans les recherches.
Je ne sais pas de quelle façon Google va "punir" les gens qui ne mettent pas "SameSite" dans leur cookies, mais ça pourrait ressembler à ça.

Je réitère ma question: comment fait-on pour mettre l'attribut SameSite à la bonne valeur dans un cookie :
1) quand le cookie est créé ou modifié par le client en JS
2) quand le cookie est créé ou modifié par le serveur en PHP
voir https://blog.dareboost.com/fr/2017/06/securisation-cookies-attribut-samesite/
pas compris comment mettre ça en œuvre.
Modifié par PapyJP (17 May 2020 - 13:15)
Bonjour mon bon Papy JP,
j'utilise ceci en .php pour connaître et savoir Qui me visite.

J'inclus l'iframe suivant en display:none qui me retourne par e-mail le temps et lieu aussitôt avérés d'une connexion.

Or par l'usage d'un VPN, et plus globalement par tous les SmartPhone, les indices de connexion publique ne sont ni fiables ni utilisables. Et puis, il suffit de vider le cache du nav-web !

Ce qui signifie que de fameux cookies ne seraient, de toutes parts pas vraiment exploitables ...

Je sais : c'est dingue ! Toutefois, je présume que la divine mode des cookies s'abandonnera à de nouvelles stratégies ...

Mais, voici mon iframe en .php dont les xxx sont à aménager :

<!doctype html>

<html lang="fr">

<head>

<meta charset="utf-8" />

<meta http-equiv="Content-Language" content="fr" />

<title>
Géolocalisation automatique
</title>

<style>
body{font-family:arial,verdana sans serif;background-color:#eee}
#global{display:block;position:relative;width:900px;margin:45px auto;padding:12px 12px 24px 12px;background-color:#fff;border:1px solid #ccc;text-align:center}
#site{color:indianred}
#geo{display:inline-block;position:relative;margin:24px 0;padding:6px 8px;background-color:#eee;font-size:1.2em}
</style>

</head>

<body>

<div id="global">

<?php
$ip = $_SERVER['REMOTE_ADDR']; // Récuperation de l'IP du visiteur
$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip)); //	Connexion au serveur de ip-api.com et récuperation des données
if($query && $query['status'] == 'success') 
{
	// Code avec les variables
	echo "Bonjour ! La géolocalisation automatique de votre connexion à la page <i id=\"site\">https://xxx.xx/xxx.php</i> vous situe ici :<br><span id=\"geo\">" . $query['country'] . " + " . $query['region'] . " + " . $query['city'] ." " . $query['zip'] . "</span>";
};

// Pour envoyer un email HTML, l'en-tête Content-type doit être défini
	$headers = 'MIME-Version: 1.0'."\r\n";
	$headers .= 'Content-type: text/html; charset=utf-8'."\r\n";	// utf-8 est déterminant pour le bon affichage des caractères accentués !
									// La boîte de messagerie réceptrice (...) doit être également configurée à bon escient !
	$headers .= 'From: xxx xxx<xxx@xxx.xx>'."\r\n";
	
// Créer date et heure de connexion
	$date_connexion = date("d-m-Y");
	$heure_connexion = date("H:i:s"); 

	$country = $query['country'];	// Simplification des écritures ip-api pour les intégrer aisément dans la génération d'un mail automatique et d'une carte OpenStreetMap
	$city = $query['city'];
	$region = $query['region'];
	$regionname = $query['regionName'];
	$zip = $query['zip'];
	$lat = $query['lat'];
	$lon = $query['lon'];
	$query = $query['query'];

	$contenu = '<html><head></head><body style="background-color:#ccc;">';
	$contenu .= '<div style="display:block; position:relative; margin:30px auto; width:450px; padding:30px 30px 42px 30px; background-color:#fff; font-family:arial,verdana; font-size:1em;">';
	$contenu .= '<span style="color: #666;">Indices de connexion à la page<br><i style="color:#cd5c5c;">https://xxx.xx.html</i><br><br><span style="font-size: .8em;">par l\'inclusion d\'un <i>iframe</i> :<br><i style="color:#cd5c5c;">https://xxx/xx.php</i></span></span><br><br><br>';
	$contenu .= ''.$country.'<br>';
	$contenu .= ''.$city.'<br>';
	$contenu .= ''.$zip.'<br><br>';
	$contenu .= ''.$region.'<br>';
	$contenu .= ''.$regionname.'<br><br>';
	$contenu .= ''.$lat.' &mdash; '.$lon.'<br><br>';
	$contenu .= ''.$query.'<br><br>';
	$contenu .= ''.$date_connexion.'<br>';
	$contenu .= ''.$heure_connexion.'<br><br>';
	$contenu .= '<a href="https://www.openstreetmap.org/?mlat='.$lat.'&mlon='.$lon.'&zoom=10#map=10/'.$lat.'/'.$lon.'">OpenStreetMap</a>';
	$contenu .= '</div></body></html>';

// Fonction d'expédition du mail après collecte des données de connexion
	mail("xxx@xxx.xx", "Géolocation à  https:/xxx.xx/xxx.html",  $contenu, $headers); 

?>

</div>

</body>

</html>

Modifié par Arrival (05 Jun 2020 - 02:26)
Le https n’est pas "obligatoire" (et d’ailleurs comment cela pourrait il être le cas?) mais simplement une page http est marquée d’un fer rouge dans la barre de navigation, de quoi faire fuir les nouveaux visiteurs.
De plus ça indique que c’est un "vieux" site, à un moment ou "vieux" Smiley vieux est un qualificatif stigmatisant. (J’en ai marre de me faire répéter en permanence dans les journaux et autres TV que je suis autorisé à sortir mais que je ferais mieux de me "confiner volontairement" Smiley confus )
Je pense qu’il va en être de même pour les cookies. Il va falloir les munir des qualificatifs appropriés. Le tout est de savoir comment faire ça et je n’ai pas trouvé.
@PapyJP

obtenir un htpps n'est pas compliqué qui ne mérite aucune prise de chou, si :
1. ton hébergeur est up-to-date
2. il intègre LETSENCRYPT - DV
3. tu rédiges ensuite dans le fichier .htaccess à la racine de ton site :

RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Ainsi, tes URL seront automatiquement sécurisées ... en https

Note : selon l'hébergeur, une variante très légère peut survenir.
Modifié par Arrival (06 Jun 2020 - 20:24)
Merci de ta réponse
J’ai passé tous mes sites en https dès que les hébergeurs ont rendu cela possible.
Je n’en ai parlé que comme un point de comparaison.
Ma question concernant les cookies est assez différente et devrait même être plus simple: ajouter 2 paramètres aux cookies ne doit pas prendre plus que quelques lignes de code. J’ai cherché en vain comment faire, c’est pourquoi j’ai posé la question sur ce forum.je ne m’inquiète pas outre mesure: quand ça deviendra urgent je ne doute pas qu’il y aura des articles fort documentés qui paraîtront ici ou ailleurs.
@PapyJp,
l'histoire phénoménale des cookies du web a vécu, me semble-t-il une errance si excessive et abusive qu'un terme radical est envisagé.

Et ce n'est pas rien que FireFox en considère un futur évènement.

...
Modifié par Arrival (07 Jun 2020 - 20:12)
@JPB,
ne sois pas désolé, je te prie de mener la distinction entre les cookies .js et .php

C'est essentiel.

Car lorsque je "vide" le cache de mon nav-web, une distinction m'est proposée des uns, ou des autres. Mais par défaut, et sans que j'en puisse distinguer la nuance ET la profondeur ... je choisis sans trop le savoir de supprimer ce qui puisse m'identifier d'une fréquentation itinérante, mais pas par exemple au site de, de , de Alsacréations et à mon compte bancaire (!) et tous les autres sites qui me soient hautement sensibles.

Il peut être envisagé qu'une nouvelle politique de gestion de cookies nous soit proposée notamment par la Fondation Mozilla en son nav-web FireFox.

Respectueusement tien.

Ps : entre Nous et rien qu'entre Nous, je crains que la CNIL ne se soit jamais préoccupée que des cookies .js non .php (-"Hu" !) Ainsi, toutes belles dérives ont prospéré, depuis si longtemps ... lorsque notre propre hébergeur-web monnayait à Quidam notre flux de connexion à notre site-web : -"Ha ! la CNIL, ce fut tout un programme".
Modifié par Arrival (09 Jun 2020 - 20:02)
Bonjour,
SameSite est un attribut de sécurité et n'a rien à voir avec la CNIL.
Depuis Chrome 84 (Chromium est concerné) sortie fin juillet 2020, le navigateur considère que si les cookies (dont les cookies de sessions apache) n'ont pas ajouté les attributs suivants : "SameSite=none; secure", alors par défaut, le navigateur applique la politique SameSite=lax.

L'attribut SameSite=lax permet de vérifier que vous êtes toujours sur le même site. Si un hacker route votre page vers son site, vos cookies ne seront pas transmis.

Pour information, Firefox va bientôt faire la même chose :
https://hacks.mozilla.org/2020/08/changes-to-samesite-cookie-behavior/
Merci de ta réponse. Ma question était (et est toujours) comment faire pour ajouter ces attributs à un cookie en JavaScript et en php? Ça doit être très simple mais je n’ai trouvé la repose nulle part.
Je précise que le site qui m’intéresse n’a que deux cookies: un qui permet à l’utilisateur d’empêcher la page d’accueil de jouer de la musique, l’autre qui contient l’identifiant de l’utilisateur.
Bonjour
Pour créer un cookie en js, j'utilise à peu de choses près :


let cvalue='ma valeur';
let cname='mycookie';
let expires='';
let path='/';
cvalue = encodeURIComponent(cvalue); 
let str = cname + "=" + cvalue + ";" + expires + ";" + path + ";" + 'sameSite=Strict;secure=TRUE;';
document.cookie = str;


Sincèrement,
JF
Merci de ta réponse, j'ai modifié mon programme JS en conséquence.
Apparemment ça ne perturbe pas le navigateur Smiley cligne
Reste à faire la même chose en php
Pour PHP, il semble que la seule façon de le faire avec des versions PHP < v7.3 soit de créer un header "Set-Cookie"

header("Set-Cookie: $KEY=$VALUE; Max-Age=$MAXAGE; path=/; domain=$DOMAIN; SameSite=Strict; Secure=TRUE;");
Heu !
Il suffit à l'usage du web de savoir comment Youtube nous 'reconnaît' à l'usage, quoi que nous eussions vidé le cache de notre nav
Notre adresse IP est déterminante.
D'abord, un VPN (ou Réseau Privé Virtul), nous permet de créer une connexion privée et sécurisée vers un autre réseau, généralement dans un autre pays. Cela donne l'apparence que nous sommes en train de naviguer depuis ce pays, nous permettant d'accéder à du contenu habituellement repéré, bloqué par la censure ou les autorités) et ne nous géo-localise pas !
Or, faut-il se cacher ?
Le sujet actuel est complexe qui ne considérerait que le 'web', or sans les wifi cellulaires.
Vaste programme, et celui de la 5G en hyper-connexion de tous les gadgets branchés, dont les petits smartphones en guise d'échanges évasives de données ... absolument programmées !
Pour le fun, voyez ceci à la suite : ayant acquis un Samsung qui a reçu sa puce opérationnelle pour téléphoner, avec abonnement Laposte, je l'ai superposé (physiquement) à un Wuahei sans puce : mon Samsung s'est mystérieusement allumé ...
-"Hu hu hu" !
@PapyJP,
ta question est selon moi, dite : de surface, et plutôt cosmétique.
En profondeur, c'est un autre phénomène qui se produit ... lequel est généré par .php
Cela signifie que l'avis obligé d'accès à une page soumise à des "cookies" est débile, emmerdeur et inutile !
Merci JP
Autant que je m’en souvienne, ça ne marchait pas avec. Php5.6. Je vais revoir ?a dans la journée
Pages :