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

Sécurité Discussion :

Base de données et formatage du texte sur site Web dynamique


Sujet :

Sécurité

  1. #1
    Membre confirmé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 162
    Points : 569
    Points
    569
    Par défaut Base de données et formatage du texte sur site Web dynamique
    Bonjour,

    Dans le but de rendre mon site Web dynamique je viens de créer une table dans ma base de données, et pour afficher les données contenues dans cette table je fais usage de la requête php suivante

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
        require '../modele/bdd.php';
        require '../modele/fonctions.php';
    ?>
     
    <?php
        $id = $_GET['footer']; // le get récupère ce qui provient de la page accueil
     
        $queryC = "SELECT * FROM footer WHERE id = :toto";
        $req = $bdd->prepare($queryC);
        $req->bindValue(':toto', $_GET['footer'], PDO::PARAM_INT);
     
        $req->execute();
     
        while($data = $req -> fetch()){
    ?>
     
    <div class="div_footer font_footer">
        <div class="container_footer">
     
        <div class="margin_top">
            <?php echo $data['cat_footer_texte'];?>
        </div>
     
        </div>
     
    </div>
     
    <?php
        }
    ?>

    Est-ce que l'absence de htmlspecialchars à la ligne 22 est risquée pour le site Web ? En effet le texte dans ma base de données est comme suit :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h1>À propos</h1>
    <h4>Présentation du site</h4>
    ...

    Si je viens à appliquer htmlspecialchars le formatage <h1> <p> etc disparaîtront à l'affichage.

    Merci pour vos lumières.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Citation Envoyé par nl.smart Voir le message
    En soi non, tout au plus ça pourrait déstructurer la page, et même perturber l'affichage si le code HTML est malformé. Mais comme vous stockez du HTML brut, il n'y a pas le choix, il faut l'afficher tel quel et donc sans htmlspecialchars.
    Le risque viendrait plutôt d'une injection SQL ailleurs, mais vous avez fait ce qu'il faut pour l'éviter.
    Par contre, il est toujours possible que la requête plante si elle reçoit un paramètre invalide en GET, donc si vous attendez un integer il serait bon de rajouter un check à cet effet. Testez votre site avec des mauvais paramètres pour voir comme il réagit.

    Personnellement, je prônerais plutôt l'utilisation de templates avec un système comme Twig par exemple.

  3. #3
    Membre confirmé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 162
    Points : 569
    Points
    569
    Par défaut
    Merci pour votre réponse et les détails que vous fournissez.

    J'ai négligez le check lors du passage en get, merci de l'avoir remarqué

    Êtes vous d'accord avec le code ci-dessous ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        if (isset($_GET['footer']) && filter_var($_GET['footer'], FILTER_VALIDATE_INT)) {
        $id = $_GET['footer']; // le get récupère ce qui provient de la page accueil

    Post scriptum : le post est passé en résolu, la question principale ayant trouvé sa réponse :-)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Points : 1 877
    Points
    1 877
    Par défaut
    Pas testé, mais ça me paraît suffisant. Même si les requêtes préparées devraient vous protéger des injections SQL je n'aime pas tellement que des script kiddies puissent faire planter mes scripts Il me semble donc que tous les paramètres doivent être validés un minimum.
    Comme certaines personnes vont chipoter avec les URLs, pas forcément dans un but malicieux, il faut voir comment le script réagit si l'ID n'est pas trouvé dans la DB.

  5. #5
    Membre confirmé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 162
    Points : 569
    Points
    569
    Par défaut
    Merci pour votre réponse et les infos jointes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Comment accéder avec php à une base de données ne se trouvant pas sur le même domaine
    Par Alexandrebox dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/02/2008, 18h16
  2. alimentation de base de donnée par un fichier texte
    Par diamond_bleu dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/06/2007, 08h42
  3. Base de donnée et export fichier text
    Par Kastagne dans le forum MFC
    Réponses: 6
    Dernier message: 07/03/2006, 22h27
  4. Réponses: 5
    Dernier message: 07/04/2005, 14h12

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