Cette page vise à expliquer pourquoi il est préférable (et recommandé) d'éviter (et de désactiver) l'utilisation du HTML dans les Wikis, et en particulier dans
WikiNi (ce qui est possible depuis la version 0.4.4). Elle se base en partie sur HTMLPourLUtilisateur.
Les risques
La possibilité d'insérer du HTML dans les pages d'un
WiKi présente plusieurs
risques importants qui constituent des
failles de sécurité. Ces risques sont d'autant plus élevés que le
WiKi est publiquement accessible et peut-être édité ou commenté par des utilisateurs anonymes. Parmi ces risques, on notera principalement:
- ceux de type Cross Site Scripting (interwiki) (XSS), permettant notamment de récupérer les cookies (avec mot de passe et identifiant de session), de placer une redirection via un code JavaScript malveillant ou d'effectuer des opérations contre le gré de l'utilisateur
- de faire planter certains navigateurs web via du code HTML invalide, ce qui peut aller jusqu'à la prise de contrôle à distance de l'ordinateur de l'utilisateur
- de cacher tout ou partie du contenu d'une page en jouant sur les styles (CSS)
- de jouer sur d'autres risques auxquels on n'a pas pensé...
Les autres inconvénients
Outre les risques, l'utilisation du HTML présente d'autres inconvénients, que ce soit pour les utilisateurs ou le site entier:
- Une page contenant du HTML est plus difficile à éditer, car la source de la page devient rapidement complètement illisible, ce qui rend difficile de s'y retrouver. Beaucoup d'utilisateurs (surtout ceux ne connaissant pas le HTML) risquent d'être rebutés et ne participeront donc pas à l'élaboration du site.
- WikiNi ou tout autre moteur ne peut fournir aucune garantie sur la validité du code HTML inséré dans les pages, ce qui est un problème pour l'accessibilité du site (navigateurs texte, vocaux...) et parfois également son affichage dans certains navigateurs graphiques.
- L'administrateur du site n'a que peu de contrôle sur le HTML inséré dans les pages, et ne peut donc facilement appliquer sa charte graphique à ce code
- L'utilisation abusive du HTML risque de mener les éditeurs à ignorer les ReglesDeFormatage en utilisant le HTML même là où ces dernières permettent de faire la même chose
- Le HTML introduit dans les pages provoquera un affichage disgrâcieux si, par la suite, vous décidez de désactiver son affichage - vous devrez alors éditer toutes les pages qui en contiennent pour corriger ce problème. On trouve ainsi beaucoup de pages qui sont dans un tel cas sur WikiNiPointNet, puisque ce n'est qu'après plusieurs années que nous avons décidé de désactiver le HTML (principalement à cause des risques pré-cités)
Les solutions dans WikiNi
À partir de la version 0.4.4,
WikiNi désactive par défaut (lors de l'installation ou la mise à jour) la possibilité d'insérer du code (X)HTML brut. Il existe plusieurs techniques pour se passer du HTML:
- Vérifiez dans les ContributionsWikiNi s'il n'en existe pas une qui permet d'étendre la syntaxe de WikiNi pour réaliser ce que vous auriez voulu faire en html. C'est notamment le cas pour les tableaux (à noter tout de même que l'EquipeDeDeveloppement étudie actuellement ce cas dans ReglesFormatageTableau)
- Le code source de WikiNi est sous licence GPL, il vous est donc tout à fait possible de modifier WikiNi ou de réaliser une ContributionWikiNi qui fournira ce dont vous avez besoin.
- Dans beaucoup de cas, il est possible d'enlever purement et simplement le HTML tout en conservant un rendu non moins lisible. C'est généralement possible pour tout ce qui se rapporte à la mise en forme (couleur du texte, positionnement du texte...)
- Si aucune de ces solutions ne vous convient, vous pouvez toujours faire vos suggestions, l'EquipeDeDeveloppement pourrait alors envisager d'étendre la syntaxe de WikiNi dans les futures versions.
En outre,
WikiNiBug:6374 (interwiki inconnu) (interwiki) suggère d'utiliser un filtre permettant d'éluder tout le code html à risque. Ceci permettrait donc de laisser la possibilité d'insérer du code HTML sans risque de sécurité, mais n'élude pas les autres inconvénients. Nous sommes ouverts à toute
ContributionWikiNi proposant la mise en oeuvre d'un tel filtre.