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

Langage PHP Discussion :

Ma page est-elle sécurisée ?


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut Ma page est-elle sécurisée ?
    Bonjour,

    voila, je fais un forum, et je propose aux membrex de modifier leurs messages (fonctionnalité classique d'un forum).. et j'ai besoin de savoir si ma page est bien sécurisée et par la même occasion de connaitre vos avis sur mon code :

    Code : 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    require '../../inc/functions.php';
    logged_only();
    require_once '../../inc/db.php';
     
    $idmsg = (int) $_GET['idmsg'];
    $user_id = $_SESSION['auth']->id;
     
    // Récupération du message
    $reponse = $pdo->prepare('SELECT idmsg, idsujet, message FROM forum_messages WHERE idmsg = ? AND idmbr = ?');
    $reponse->execute(array($idmsg, $user_id));
    $donnees = $reponse->fetch();
    if (!$donnees){
        $_SESSION['flash']['danger'] = 'Ce message n\'existe pas';
        header('Location: /membres/forum/index.php');
        exit();
    }
     
    if (!empty($_POST)) {
     
        if (empty($_POST['message'])) {
            $_SESSION['flash']['danger'] = 'Votre message est trop court';
        }
     
        if (!isset($_SESSION['flash'])) {
            $pdo->prepare('UPDATE forum_messages SET message = ? WHERE idmsg = ? AND idmbr = ?')->execute([$_POST['message'], $idmsg, $user_id]);
            $_SESSION['flash']['success'] = 'Votre message a bien été modifié';
            header('Location: sujet.php?idsujet='.$donnees->idsujet.'');
            exit();
        }
    }
     
    require '../../inc/header.php';
    ?>
        <h1>Modifier mon message</h1>
     
        <form action="" method="POST">
            <div class="form-group">
                <label for="message">Votre message</label>
                <textarea name="message" class="form-control" id="message" rows="6"><?= empty($_POST['message']) ? ''.$donnees->message.'' : htmlspecialchars($_POST['message'], ENT_QUOTES); ?></textarea>
            </div>
            <button type="submit" class="btn btn-primary">Modifier</button>
        </form>
     
    <?php require '../../inc/footer.php'; ?>
    merci à vous.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2015
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2015
    Messages : 644
    Points : 1 509
    Points
    1 509
    Par défaut
    Bonjour,

    A partir du moment ou tu fais du PDO... Pourquoi elle le serait pas?

    C'est plus tes formulaires qu'il faut vérifier, mieux vaut deux fois qu'une !
    Un fait toujours plaisir et encourage à l'entraide. Un n'est pas à négliger, pensez aux autres !

    Que la force soit avec Developpez.net
    Je ne suis pas un crack en informatique, loin de là, mais il n'y a pas que les mécaniciens qui sachent conduire une voiture

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par JujuPomme Voir le message
    C'est plus tes formulaires qu'il faut vérifier, mieux vaut deux fois qu'une !
    C'est à dire ? ce n'est pas le cas actuellement au niveau du formulaire ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Petit raccourci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!$donnees = $reponse->fetch()) {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Sabotage : Fait ! Je viens de raccourcir de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // Récupération du salon
    $reponse = $pdo->prepare('SELECT idsalon, titre FROM forum_salons WHERE idsalon = ?');
    $donnees = $reponse->execute(array($idsalon));
    if (!$donnees = $reponse->fetch()) { header('Location: /membres/forum/index.php'); exit(); }
    ?>
    tu vois une autre façon de le raccourcir encore ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il ne faut pas abuser des raccourcis
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    ok

    par contre question pertinente : est-ce obligatoire de faire une requête préparé ici ? Car je sécurise déjà la variable GET idsalon par un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idsujet = (int) $_GET['idsujet'];
    cette ligne transforme la variable idsujet par un "0" en cas de variable malveillante !

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le (int) est suffisant.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Invité
    Invité(e)
    Par défaut
    Par contre, je suis partisan de toujours préparer une requête dès lors qu'il y a des variables...

    Car il n'est pas exclus que tu oublies, dans un futur code, de préciser (int)...

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

Discussions similaires

  1. Ma page est-t'elle sécurisée ?
    Par bndd24 dans le forum Langage
    Réponses: 9
    Dernier message: 23/04/2016, 02h55
  2. Cette page est-elle déjà ouverte dans mon navigateur ?
    Par _rainbow dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 26/07/2012, 13h56
  3. Une page en .php est elle référencée par google et consorts
    Par lonycc dans le forum Référencement
    Réponses: 8
    Dernier message: 25/11/2008, 16h31
  4. [JS] Recharger une page quand elle est réaffichée !
    Par beowax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2007, 17h01

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