Cookies "samesite" compliant : comment ?

WRInaute accro
Bonjour

Mon site a un trafic divisé par 4 depuis Février 2020.

Je suis en https avec un certificat ssl LetEncrypt.

Comment puis rendre mes cookies compliants avec le "samesite" de Google ?

Merci beaucoup.

Amicalement.
 
WRInaute passionné
Bonjour

Mon site a un trafic divisé par 4 depuis Février 2020.

Bah... il y a encore des courses ? ;)

Comment puis rendre mes cookies compliants avec le "samesite" de Google ?

Il n'y a rien à faire de spécial, par défaut bientôt les navigateurs le considéreront automatiquement "SameSite=Lax" s'il n'est pas spécifié, ce qui est suffisant si le cookie n'est pas partagé sur d'autres sites.
 
WRInaute accro
Bonjour rick38

Je dois générer des sessions, avec un cookie de session.

Suis-je obligé de lancer session_start() pour celà, ou comment simuler autrement une session ( par exemple en créant un cookie de session ) , sachant que les $_SESSION devraient ne pas varier à chaque changement de page ?

Sous PHP 7.0 ( Debian 9 ), je peux utiliser les headers pour les cookies, donc mettre le SameSite à 'None'.

Le paramètre $options de set_cookies_params($options) n'existe pas sous PHP < 7.3.

Merci beaucoup de vos réponses.

Amicalement.
 
WRInaute passionné
Une session nécessite bien session_start() et ça s'occupe de créer un cookie de session, où est le problème...
 
WRInaute accro
Bonjour spout et rick38

PHP 7.4 supporte-t-il tous les modules ( gd_php , php_pdo, etc... ) de PHP 7.0 ?

Est-ce que PHP 7.4 supporte en natif le ini_set('session.cookie_samesite', true); ?

Si oui, je pourrais le positionner avant de faire : session_name(SESSION_COOKIE) et session_start().

Je ne sais pas réécrire le cookie de session COOKIE_SESSION après session_start(), après la session s'arrête, et le cookie de session disparaît.

Merci beaucoup spout pour ton lien.

Amicalement.
 
Dernière édition:
WRInaute passionné
Je suis passé à toutes les versions supérieures sans jamais de souci de module.

En vieux PHP, <7.3, vous pouvez mettre l'option dans path:

session_set_cookie_params([
'lifetime' => $cookie_timeout,
'path' => '/;SameSite=none',
'domain' => $cookie_domain,
'secure' => $session_secure,
'httponly' => $cookie_httponly,
'samesite' => 'Lax'
]);
 
WRInaute accro
Bonjour rick38

D'après le PHP Manual, la fonction session_set_cookie_params(), ne supporte le paramètre $options ( array ), qu'à partir de 7.3 ?

Respectueusement.
 
WRInaute passionné
Je ne sais pas, personnellement je n'ai jamais utilisé cette fonction, car setcookie() permet de tout mettre quand je crée un cookie, par exemple :
setcookie('cookie-name', '1', 0, '/; samesite=strict', '', true, true);

Et je rappelle que lorsque samesite n'est pas précisé, il sera (plus tard), considéré comme strict par défaut, donc il n'y a pas à s'en préoccuper en fait.

Si PHPSESSID vous préoccupe malgré tout, le plus simple est encore de passer à PHP >=7.3 pour que la fonction de paramètres fonctionne avec $options.
 
Dernière édition:
WRInaute accro
Bonjour rick38

Et pour un cookie de session ?

Comment initialiser une session avec samesite= 'None' ( ou 'Strict' ) avec session_start() ?

Autrement qu'avec set_session_cookie_params() ?

Sinon, peut-on écraser un cookie d'une session active, avec setcookie() et samesite ?

Merci beaucoup.
 
WRInaute passionné
Le cookie de session c'est le PHPSESSID dont je parlais, c'est ainsi que le nomme PHP.

Franchement, passer à une version plus récente de PHP est le mieux à faire, d'autant que chaque version améliore les performances, etc.

Sinon si votre site est sur un serveur dédié (je crois que c'est le cas ?), vous pouvez ajouter dans la conf d'Apache
Header always edit Set-Cookie (.*) "$1; SameSite=Strict"

Cela dit il est sûrement possible d'écraser le cookie comme vous dites (PHPSESSID donc), vous pouvez essayer et voir le résultat...
 
Dernière édition:
WRInaute accro
Bonjour rick38

Tu as raison : De toute manière, ma version Debian 9 est obsolète, je vais devoir prochainement migrer mon serveur VPS SSD.

J'ai mis à l'instant mes deux cookies : SES ( de session ) et STAR_COOKIE en mode secure et HttpOnly.

Tout est prêt pour prendre en compte le samesite( 'None' et secure ) après que le serveur ait migré.

Je n'ai plus qu'adapter le Javascript de ma gestion de cookies.

Super merci pour ton aide.

Amicalement.
 
WRInaute accro
Pardon

J'ai mis le cookie de gestion de cookies ( CM_Cookie_consent ), avec secure et samesite='strict'.

Il n'y plus qu'à attendre le changement de serveur.

A votre avis, quel est le moyen le plus efficace pour sécuriser un serveur ssh ?

Les clés c 'est fragile, il suffit que l'ordi soit un peu hacké.

Merci beaucoup.
 
Discussions similaires
Haut