IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MkFramework Discussion :

protection XSS et framework sécurisé ?


Sujet :

MkFramework

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 965
    Points
    3 965
    Par défaut protection XSS et framework sécurisé ?
    Salut

    Ca tiendrait presque du message personnel à Imikado, mais je crois que ça vaut l'intervention d'autres personnes savantes, étant donné que je n'ai pas la science infuse.

    Imikado, je te lisais sur windows 10 et ubuntu, je vois ta signature, je vois ce mot sécurisé souligné et donc hyperlié, je suis le lien, et je lis :

    Le xss consistant à utiliser un paramètre (GET/POST...) pour modifier le site, le framework propose d'utiliser la méthode _root::getParam() à la place des variables globales $_GET/$_POST
    Le contenu retourné par _root::getParam() filtre les entrées des attaques XSS mais également des attaques de type null byte
    Ne connaissant pas cette méthode qui doit faire partie de ton framework Imikado, je cherche un peu et je lis :


    Ici, le framework propose de ne pas utiliser les variables d'environnement $_GET et $_POST, mais plutôt la méthode publique statique _root::getParam().

    Cette méthode sécurise la chaîne des attaques XSS et null byte.

    Les valeurs soumises par les internautes sont également encodées en HTML, quotes comprises, à chaque affichage de la donnée.

    Pour information, il y a deux méthodes de sécurisation :

    vérifier les chaînes en entrées, et les protéger systématiquement à l'affichage (partout dans le site) ;
    convertir les chaînes en HTML sécurisé et les enregistrer converties pour ne pas se soucier des erreurs à l'affichage.

    Le framework utilise la seconde, c'est certes une méthode radicale mais elle a fait ses preuves, contrairement à la première. Elle évite d'avoir des failles de sécurité, car un développeur a oublié de sécuriser une chaîne à l'affichage (dans la page et/ou dans un champ de formulaire ) sur la première.
    Alors pour moi soyons clair la seconde méthode n'a rien prouvé.
    Il existe une 3e voie, probablement la seule valide à l'heure actuelle : c'est d'encoder systématiquement à l'usage et selon le contexte d'usage des données qui ont été transmises à un moment donné.

    Je vais pas refaire la leçon, tout est dit ici :
    https://www.owasp.org/index.php/XSS_...on_Cheat_Sheet


    Aucune prétention sur le sujet, sauf que j'ai eu à protéger entièrement une application web que je développe depuis des années pour le compte d'une institution des jeux, basée sur de l'ASP classic, avec audit de sécurité avant/après. Travailler sur le XSS a été ma plus grosse tache, relecture de tout le code pour encodage systématique en fonction du contexte.

    Stocker des données déjà encodées ne sert à rien car on ne peut pas présumer de leur contexte d'usage.

    Imikado, tel que tu présentes les choses, tu donnes à tes utilisateurs un sentiment de confiance que de toute façon tu ne devrais jamais donner, quand bien même tu serais très sur de toi. Tu dois inciter les gens qui utilisent ton framework à ne pas être de simples consommateurs, je crois...

    Il faudrait strictement encoder en fonction du contexte : HTML pour HTML JS escape pour du javascript, URL escape et ainsi de suite...

    Et c'est en toute sympathie que je t'écris cela Imikado, car j'ai réellement plaisir à te lire quand j'en ai l'occasion ;-) Aucune volonté de créer polémique, je te challenge sur cette prétention à être sécurisé.

    Quand j'aurais un peu de temps je regarderais ce que tu fais pour le reste des menaces, que j'ai eu à traiter bien sur.

    Une grille de test des injections XSS : https://www.owasp.org/index.php/XSS_...on_Cheat_Sheet

    PS: as tu essayé des outils automatisés de test/pénétration sur ton framework ? as tu sollicité des gens qui maitrisent ces techniques de hack/crack ?
    Émotion
    Infantilisation
    Culpabilisation

    Christophe Alévèque - 18 Mars 2021

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    Billets dans le blog
    17
    Par défaut
    Bonjour,
    Oui, votre remarque est pertinente: on sécurise vis à vis d'un contexte, et par défaut ce framework est sécurisé pour le web, d'ou le choix du htmlentities

    Et oui pour information, de nombreuses applications utilisant ce framework ont subit des tests d’intrusion/audit de sécurité avec succès.
    Pour information, je travaille depuis des années dans un contexte professionnelle où nos applications "publiques" sont systématiquement testés par des cabinet externe.
    Avant nous utilisions d'autres frameworks qui ne passaient pas ces tests d'intrusions

    C'est d'ailleurs au fil de ces rapports que j'ai pu amélioré/corrigé le framework en conséquence
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

Discussions similaires

  1. [AJAX] Outrepasser la Protection XSS
    Par DrunkenBeard dans le forum AJAX
    Réponses: 2
    Dernier message: 16/12/2011, 16h03
  2. zend framework et protection CSRF
    Par nicolas2117 dans le forum Zend Framework
    Réponses: 5
    Dernier message: 20/06/2011, 20h50
  3. [MySQL] faille dans ma protection xss
    Par sinifer dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 02/02/2011, 14h49
  4. [Sécurité] protections php pour XSS, injections SQL, etc
    Par nintendoplayer dans le forum Langage
    Réponses: 1
    Dernier message: 20/03/2008, 08h57
  5. Framework : performance & protection
    Par kinhelios dans le forum Visual C++
    Réponses: 1
    Dernier message: 12/07/2006, 23h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo