Chez oim, forum libre

Débattre => Informatique, programmation, geek attitude... => Discussion démarrée par: Songbird le mercredi 20 juillet 2016, 04:00

Titre: Quel est l'équivalent de htmlspecialchar de PHP en Dart ?
Posté par: Songbird le mercredi 20 juillet 2016, 04:00
Tous les outils chargés de la sécurité contre les injections de code non-désirées se trouvent dans le package dart:convert.

Vous aurez généralement besoin d'utiliser les deux classes suivantes:

L'une étant, en quelque sorte, l'amorce de l'autre, vous devrez les utiliser de cette manière:
Code: javascript
var sanitizer = const HtmlEscape(HtmlEscapeMode.UNKNOWN);
/** 
Le constructeur de la classe HtmlEscape doit être obligatoirement statique
Le mode par défaut est UNKNOWN, mais vous pouvez bien entendu découvrir les autres modes dans les liens dans la liste ci-dessus.
Il est bien sûr inutile de préciser la propriété UNKNOWN si vous souhaitez ne rien changer, ce n'était qu'à titre d'exemple.
*/
Puis vous pouvez désormais préparer votre code html malicieux:
Code: html
var html = "<span name='test'>Hello!<!--</span>";

Maintenant que votre outil est prêt et que votre code html est créé, il vous suffit d'utiliser la méthode convert() qui se chargera pour vous d'échapper tous les caractères spéciaux susceptibles de nuire au bon fonctionnement de votre page.
Voici un exemple:
 
Code: dart
import 'dart:convert'; /** Ne pas oublier l'import ! */

void main()
{
  var sanitizer = const HtmlEscape(HtmlEscapeMode.UNKNOWN);
  var html = "<span name='test'>Hello!<!--</span>";
  print(sanitizer.convert(html));
}

Vous pouvez aller voir le résultat ici (https://dartpad.dartlang.org/866d1f78b97c4a9b0608501abbb37b2c).