Partage
  • Partager sur Facebook
  • Partager sur Twitter

Utilisation de htmlspecialchars

Sujet résolu
    14 janvier 2021 à 1:56:15

    Bonjour, après plusieurs remarques quant à mon utilisation du htmlspecialchars, je me demande comment bien l'utiliser: un exemple sur le début de ma page d'inscription: 
    <?php
    
    require "basede.php";
    include("partials/_header.php");
    include("partials/_menu.php");
    session_start();
    if(isset($_POST['submit']))
    {
        
        
        $pseudo= htmlspecialchars(trim($_POST['pseudo']));
        $nom=htmlspecialchars(trim($_POST['nom']));
        $password=htmlspecialchars($_POST['password']);
        $email=htmlspecialchars(trim($_POST['email']));
        $password_confirm=htmlspecialchars($_POST['password_confirm']);
        
        

    est-ce une bonne utilisation ou dois-je l'utiliser quand je fais appel à ma SESSION par exemple : 

    <?= htmlspecialchars($_SESSION["pseudo"]); ?>

    Merci de votre réponse

    -
    Edité par salutsava2 14 janvier 2021 à 1:56:57

    • Partager sur Facebook
    • Partager sur Twitter
      14 janvier 2021 à 7:43:42

      Bonjour,

      dans aucun des deux cas.

      > Pas de htmlspecialchars sur les données entrée en BDD, c'est uniquement à l'affichage

      te disait julp dans ce sujet : https://openclassrooms.com/forum/sujet/probleme-pour-modifier-une-table-en-php

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :)

        14 janvier 2021 à 8:40:48

        Salut

        Attention, je ne suis pas certain d'avoir compris juste Lamecarlate quand elle dit que ce n'est « dans aucun des deux cas » que c'est utilisé correctement : ton exemple avec l'affichage du pseudo en session me paraît correct en fait. Tu affiches quelque chose qui vient de l'utilisateur (que cela ait passé par la base de données ou non) => htmlspecialchars() à ce moment.
        Par contre, j'appuie ce qui t'a apparemment déjà été dit, à savoir qu'il ne faut effectivement utiliser ni htmlspecialchars() et encore moinshtmlentities() sur des données avant de les utiliser dans une requête, quelle qu'elle soit.

        Edit

        @Lamecarlate : par contre, julp n'a pas participé au sujet que tu lies  ;)

        -
        Edité par Ymox 14 janvier 2021 à 8:41:44

        • Partager sur Facebook
        • Partager sur Twitter
          14 janvier 2021 à 12:11:44

          D'accord donc si j'ai bien compris c'est uniquement à l'affichage que je dois utiliser mes htmlspecialchars comme si je veux afficher un pseudo je fais 

          <?= htmlspecialchars($_SESSION['pseudo']); ?>

          Est-ce la même chose pour trim?

          <?= htmlspecialchars(trim($_SESSION['nom'])); ?>

          Merci


          • Partager sur Facebook
          • Partager sur Twitter
            14 janvier 2021 à 13:09:20

            Non, trim() peut être utilisé avant l'envoi en base de données, vu que ce n'est pas de la "sécurisation" mais du nettoyage.

            A noter qu'on n'utilise pas trim() sur des mots de passe.

            • Partager sur Facebook
            • Partager sur Twitter
              14 janvier 2021 à 13:17:26

              Je me suis gourée, c'est Aurélien C. que je voulais citer.

              Et j'ai dû être trop véhémente, en effet, la seconde possibilité (venant de $_SESSION) est cohérent, j'ai lu trop vite. Désolée :(

              • Partager sur Facebook
              • Partager sur Twitter

              Pas d'aide concernant le code par MP, le forum est là pour ça :)

                14 janvier 2021 à 14:09:25

                D'accord merci de votre aide.
                • Partager sur Facebook
                • Partager sur Twitter

                Utilisation de htmlspecialchars

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown