Groupe PhP

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Groupe PhP

Forum du groupe d'apprentissage mutuel en PHP

Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

2 participants

    [TD][3] Sécurison tout ça

    Single Dark
    Single Dark
    Débutant PHP
    Débutant PHP


    Messages : 63
    Date d'inscription : 06/09/2009
    Age : 35
    Localisation : Brest

    [TD][3] Sécurison tout ça Empty [TD][3] Sécurison tout ça

    Message par Single Dark Sam 12 Sep - 14:30

    Bon comme je vous l'ai dit et redit et reredit il ne faut pas utiliser les scripts que vous avez réalisez pour les exercices précédant, pour la simple et bonne raison qu'il ne sont pas sur du points de vue de la sécurité.


    Maintenant, nous allons voir comment augmentez la sécurité pour nos scripts PHP.
    Si vous avez lu, voir même survoler mes exercices précédant vous avez certainement du voir le 'NEVER TRUST USER INPUT' ce qui veut dire en Français, 'Ne JAMAIS faire confiance au donnée de l'utilisateur'.

    On va dire que la majorité des internautes ne sont pas capables de faire du mal à vos sites, mais il y en à quelqu'un (lamer et autre kevin) qui vont esseyer de piraté votre site chérie.
    Il existe beaucoup de faille qui peuvent facilement combler, pour justement éviter l'attaque.
    Mais il faut savoir aussi qu'un site web n'est jamais sur à 100%, Si un hacker veut accéder a votre site, il le pourra.


    Avant d'aller plus loin je vous conseil de lire quelque article sur la sécurisation.

    http://www.securite-info.org/
    http://www.phpsecure.info/v2/article/XSS.php
    http://fr.wikipedia.org/wiki/Cross-site_scripting
    http://fr.wikipedia.org/wiki/Injection_SQL

    C'est vers ces deux failles, XSS et injections SQL, que se TD sera orienté...
    Je vous conseil pour le moment de lire uniquement ce qui concernent ces failles. Pour évitez de vous mettre la tête en choux-fleur.



    Vous avez fait bonne lecture ? Vous êtes près à faire de la sécurisation ?!?
    Vous êtes incollable sur la faille XSS ? Et les Injections SQL n'ont plus de secret pour vous ?
    Faite chauffer vos clavier et en avant Guigamp...

    Je vais d'abord jeter les bases de ce TD, nous allons prendre pour exemple le script que j'ai fais pour l'exercice 2.
    Pour rappel le voilà :

    Spoiler:
    Je vous conseil de le copier/coller dans votre Editeur de texte pour plus de lisibilité.

    Maintenant si vous avez bien lu et surtout bien compris les articles que vous avez lu, ce script à de GROSSES FAILLES de sécurité.
    Il y a bien sur une faille XSS, et les INJECTIONS SQL sont possible.

    Vous avez du voir que pour combler les failles XSS il fallait utiliser 'htmlspecialchars()' !?!
    Il faut l'utiliser sur toutes les données que l'utilisateur nous envoie, comme _POST.


    Oui je suis d'accord là dessus, mais on le mets où 'htmlspecialchars()' ?!?

    DTC -> XD

    Il faut appliquer cette fonction avant tout traitement. Donc ici dans ce script, il serai judicieux de le mettre avant la requète SQL.
    Vous pouvez les mettre autres part si cela vous chantent, sauf bien sur après le traitement de l'information.

    Alors ? c'était facile de combler la faille XSS ? Pour les injections SQL c'est aussi facile. Il suffit juste de rajouter la fonction 'mysql_real_escape_string()'


    Ce qui donne un truc comme

    Code:

    $login   =   mysql_real_escape_string(htmlspecialchars($_POST['login']));


    Et voilà rien de plus simple. C'est içi que se TD s'arrète, j'espère qu'il vous aidera un peu, Et là je vais dire quelque chose de nouveau. Vous pouvez utiliser ça sur votre site.
    Je vous invite à vous documentez plus en profondeur sur la sécurisation en PHP, il existe beaucoup de tuto sur le WEB, beaucoup sur le SdZ.
    Dauphin
    Dauphin
    Novice PHP
    Novice PHP


    Messages : 2
    Date d'inscription : 15/09/2009

    [TD][3] Sécurison tout ça Empty Re: [TD][3] Sécurison tout ça

    Message par Dauphin Mar 15 Sep - 2:41

    Code:
    mysql_real_escape_string(htmlspecialchars($_POST['login']));

    On utilise htmlspacialchars() pour l'affichage.
    Si tu l'utilise pour insérer des donner alors tu ne l'utilise pas pour l'affichage (ou sinon tu utilise une fonction pour rien Laughing ) et dans ce cas là, si jamais quelqu'un réussi à entrer de code dans ta bdd par un quelconque moyen, tu l'a dans le cul.

      La date/heure actuelle est Dim 19 Mai - 10:52