[sécurité - cookie] possibilité de gérer l'attribut "secure" du cookie spip session via une constante #3821

Closed
opened 7 years ago by g0uZ · 12 comments
g0uZ commented 7 years ago

Peut on ajouter une constante _COOKIE_SECURE pour l'attribut "secure" du cookie spip_session pour pouvoir définir son utilisation dans mes_options.php via :

    define('_COOKIE_SECURE',true);

un ajout est nécessaire l56 dans ecrire/inc/cookie.php :

if (!$secure and defined('_COOKIE_SECURE')) {
	$secure = in_array($name, explode(' ', 'spip_session'));
}

?

Peut on ajouter une constante _COOKIE_SECURE pour l'attribut "secure" du cookie spip_session pour pouvoir définir son utilisation dans mes_options.php via : define('_COOKIE_SECURE',true); un ajout est nécessaire l56 dans ecrire/inc/cookie.php : if (!$secure and defined('_COOKIE_SECURE')) { $secure = in_array($name, explode(' ', 'spip_session')); } ?
b_b commented 7 years ago
Owner

Version cible mise à 3.1

**Version cible mise à 3.1**
b_b commented 5 years ago
Owner
There is no content yet.

Il y aurait un autre attribut de cookie qui serait intéressant à implémenter : "httponly" - il est souvent associé à "secure"

Cela permet de ne pas laisser "autre chose" que http l'utiliser, comme un moteur java par exemple pour construire une attaque.

Il y aurait un autre attribut de cookie qui serait intéressant à implémenter : "httponly" - il est souvent associé à "secure" Cela permet de ne pas laisser "autre chose" que http l'utiliser, comme un moteur java par exemple pour construire une attaque.

Bien lire "javascript" au lieu de "java" dans mon message ci-dessus.

Je n'avais pas assez cherché, je viens de me rendre compte que l'attribut httponly est bien mis sur le cookie de session, donc tout va bien de ce côté.

Reste l'attribut "secure" dans ce cas, qui est une recommandation OWASP depuis un bon moment : https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OTG-SESS-002)

Pour ce qui est de l'attribut domain, c'est déjà implémenté dans Spip. Il n'en manque donc plus qu'un pour être complet, "secure" !

Bien lire "javascript" au lieu de "java" dans mon message ci-dessus. Je n'avais pas assez cherché, je viens de me rendre compte que l'attribut httponly est bien mis sur le cookie de session, donc tout va bien de ce côté. Reste l'attribut "secure" dans ce cas, qui est une recommandation OWASP depuis un bon moment : https://www.owasp.org/index.php/Testing_for_cookies_attributes_(OTG-SESS-002) Pour ce qui est de l'attribut domain, c'est déjà implémenté dans Spip. Il n'en manque donc plus qu'un pour être complet, "secure" !

Bonjour,

Est ce que c'est prévu de l'intégré dans les prochaines version de SPIP ou pas encore ?

Cordialement.

Bonjour, Est ce que c'est prévu de l'intégré dans les prochaines version de SPIP ou pas encore ? Cordialement.

Cela fut déjà intégré par -#19183- r19183

Cela fut déjà intégré par -#19183- r19183

Un retour la dessus ?

Un retour la dessus ?

Yo, trois ans que ça traîne! Le client n'est pas content, comme disait l'autre.
Pour ma part, c'était spip_lang que me tournait en bourrique, je suis allé en mode bourrin au bazooka


	if (!$secure and defined('_COOKIE_SECURE')) {
        $secure = in_array($name, explode(' ', 'spip_session'));
        $httponly = in_array($name, explode(' ', 'spip_session'));
    }
	if (!$secure and defined('_COOKIE_SECURE')) {
        $secure = in_array($name, explode(' ', 'spip_lang'));
        $httponly = in_array($name, explode(' ', 'spip_lang'));
    }

Yo, trois ans que ça traîne! Le client n'est pas content, comme disait l'autre. Pour ma part, c'était spip_lang que me tournait en bourrique, je suis allé en mode bourrin au bazooka <pre> if (!$secure and defined('_COOKIE_SECURE')) { $secure = in_array($name, explode(' ', 'spip_session')); $httponly = in_array($name, explode(' ', 'spip_session')); } if (!$secure and defined('_COOKIE_SECURE')) { $secure = in_array($name, explode(' ', 'spip_lang')); $httponly = in_array($name, explode(' ', 'spip_lang')); } </pre>
Owner

J’ai envoyé :

Ça introduit la possibilité d’avoir _COOKIE_SECURE , sur 'spip_session'.
Je ne vois pas trop le rapport avec 'spip_lang' cela dit ?, donc je ne l’ai pas mis dessus.
Si quelqu’un·e a des détails à fournir (ou s’il faut pouvoir définir la liste, dites le :)

Par défaut aussi, j’envoie maintenant aussi samesite => Lax.

Version cible mise à 4.0
Statut changé à En cours

J’ai envoyé : - https://git.spip.net/spip/spip/commit/63a427ac2 - https://git.spip.net/spip/spip/commit/607ad198 Ça introduit la possibilité d’avoir _COOKIE_SECURE , sur 'spip_session'. Je ne vois pas trop le rapport avec 'spip_lang' cela dit ?, donc je ne l’ai pas mis dessus. Si quelqu’un·e a des détails à fournir (ou s’il faut pouvoir définir la liste, dites le :) Par défaut aussi, j’envoie maintenant aussi samesite => Lax. **Version cible mise à 4.0** **Statut changé à En cours**
Owner

J’ai complété par https://git.spip.net/spip/spip/commit/d6552d0563 en fait, car trop optimiste, la version avec $options en tableau est arrivée en PHP 7.3, de même que l’option samesite.
Du coup, on applique same que pour php >= 7.3.

Alternative sinon il faudrait passer par la fonction header() comme a fait Nextcloud là dans sa classe setCookie : d01905200a

J’ai complété par https://git.spip.net/spip/spip/commit/d6552d0563 en fait, car trop optimiste, la version avec $options en tableau est arrivée en PHP 7.3, de même que l’option samesite. Du coup, on applique same que pour php >= 7.3. Alternative sinon il faudrait passer par la fonction header() comme a fait Nextcloud là dans sa classe setCookie : https://github.com/nextcloud/server/commit/d01905200aa2da5f6271815975500dc7f30fd050
b_b commented 2 years ago
Owner

Topito marcimat :) On ferme ?

Topito marcimat :) On ferme ?
Owner

on ferme
Statut changé à Fermé

on ferme **Statut changé à Fermé**
Sign in to join this conversation.
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.