XOOPS 2.0.10 RC Released

Date 03/04/2005 | Sujet : Versions

Nous sommes heureux de vous annoner la sortie de la version XOOPS 2.0.10 RC (une version RC, release candidate, est en principe la dernière version de test avant une sortie finale)

La 2.0.10 RC de XOOPS est une version de sécurité améliorée qui diminue l'utilisation de la fonction fopen avec les urls et introduit un nouvel outil de sécurisaton des modules contre les attaques CSRF : la classe XoopsSecurity.

La mise à niveau de 2.0.9.2, 2.0.9.3 ou a 2.0.10 beta s'effectue en uploadant tous les fichiers 2.0.9.2-2.0.10 RC patch and puis en effectuant une mise à jour du module system dans le menu administration des modules.

Les fichiers de cette version comprennent les versions 1.1 du module news et 1 du module newbb. Si vous utilisez Newbb 2 et News 1.2 ou plus, vous n'avez pas à transférer les répertoires modules/news et modules/newbb.



XoopsSecurity

Cette nouvelle classe comporte des routines de sécurité incluant une vérification du HTTP REFERER et la contamination de variables globales par les demandes de paramètres.

Elle introduit également un système de jeton pour sécuriser les formulaires des attaques CSRF, expliqués plus en détail dans les pages suivantes.

Comment cela fonctionne ?

Le jeton est généré à chaque utilisation de champs input dans les formulaires, avec une valeur unique et pratiquement non devinable qui est sauvée sous forme de variable cachée dans la session de l'utilisateur. Quand le formulaire est soumis, la page qui le réceptionne peut vérifier si la valeur du jeton fournie via le formulaire est conforme à la session de l'utilisateur, sinon une erreur se produit.

Comment je peux utiliser ceci dans mon module

Tout dépend de la réalisation de votre module, il existe plusieurs façons de procéder pour implémenter ce système de jeton :

Envoi du formulaire
1) Ajouter un 5° paramètre au constructeur de la classe dérivée XoopsForm - true pour ajouter un jeton et false (default) pour ne pas utiliser le système de jeton dans ce formulaire.

2) Si vous n'utilisez pas les classes XoopsForm, mais écrivez du html directement dans une fichier php ou un template Smarty ; pour récupérer le système de jeton dans votre code html, utilisez $GLOBALS['xoopsSecurity']->getTokenHTML() - ceci retournera le résultat XoopsFormHiddenToken::render() call, prêt à être utilisé dans un fichier php ou assigné à la variable $xoopsTpl pour utilisation dans un template.

Réception du formulaire
Vous pouvez vérifier la validité du jeton en appelant $GLOBALS['xoopsSecurity']->check() - qui retourne true ou false - avant d'autoriser une mise à jour de la base de données ou des actions similaires.

Quand dois-je l'utiliser ?

Vous devez utiliser le système de jeton à chaque fois que vous avez un formulaire qui doit faire des changements dans la base de données. Spécialement si le formulaire concerne des utilisateurs avec des droits privilégiés.

J'utilise le module xxx sur mon site, il n'utilise pas le système de jeton, est-ce dangereux ?

Non pas directement, même s'il y a eu discussion à ce sujet (c'est pourquoi nous construisons ce système de jeton tous ensemble). Si vous contrôlez le http referer (ce que fait xoops par défaut), vous êtes déja protégés des attaques malicieuses du type utilisation d'un formulaire depuis un autre site pour accéder à votre site sous le profil admin
Cependant, contrôler le http referer n'est pas totalement pratique pour vos visiteurs, qui doivent configurer leur firewall pour leur site. Le système de jeton rend votre site moins vulnérable et devrait vous décider à désactiver le contrôle du referer.

Qui dois-je remercier pour que Xoops soit mieux sécurisé ?

La communauté japonaise à qui vous pouvez envoyer vos remerciements, fleurs, chocolats, etc...


Merci à Marco d'avoir participé à cette traduction



Cet article provient de Communauté Francophone des Utilisateurs de Xoops
https://www.frxoops.org

L'adresse de cet article est :
https://www.frxoops.org/modules/news/article.php?storyid=763