Script modif profil membre : sécurité

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Script modif profil membre : sécurité

Re: Script modif profil membre : sécurité

par xTG » 04 nov. 2012, 15:34

En effet mysql_real_escape_string() protège bien contre les injections, je te pointe justement du doigt une variable qui n'est pas protégée avec. ;)

Sinon j'ai pas compris le reste... Ton header n'est pas là pour une redirection ?
Si tu veux ne pas afficher le reste soit tu englobes le tout avec une condition soit tu utilises la fonction exit() qui va stopper le script.

Re: Script modif profil membre : sécurité

par mumbly » 03 nov. 2012, 18:37

Humm ... merci pour la réponse mais je suis pas sur de tout capter ...
De plus j'ai essayé pas mal de trucs, mais je ne m'en sors pas.
Au niveau sécurité je pensais notamment que mysql_real_escape_string "protégeait" les données en entrée mysql...
Le header('Location: .......') arrête le code certes mais somment afficher l'erreur sans afficher la page en question ? Comment juste afficher le message d'erreur "sans rien d 'autre" ?
Merci pour tout.

Re: Script modif profil membre : sécurité

par xTG » 03 nov. 2012, 17:19

Stockes en session l'id du membre à la connexion si ce n'est pas déjà fait.
Puis il suffit de vérifier sa concordance avec $iduser.

PS :
// on extrait $_POST : pratique !
    extract($_POST);// y'a t-il eu changement d'image ou pas ?
    if (empty($name_file)) {
      $sql = "UPDATE users SET nomuser='".mysql_real_escape_string($nomuser)."', mailuser='".mysql_real_escape_string($mailuser)."', signature='".mysql_real_escape_string($signature)."' WHERE iduser=$iduser";
    }
Mais pas du tout sécurisé...
Si je modifie la valeur de $iduser dans le formulaire je fais ce que je veux avec ta base de données. ;)
=> mysql_real_escape_string()
//echo "Le fichier a bien été uploadé";
    header("Location: moncompte.php?id='.$iduser.'");
 
 
    // on extrait $_POST : pratique !
    extract($_POST);
 
 
    // y'a t-il eu changement d'image ou pas ?
    if (empty($name_file)) {
      $sql = "UPDATE users SET nomuser='".mysql_real_escape_string($nomuser)."', mailuser='".mysql_real_escape_string($mailuser)."', signature='".mysql_real_escape_string($signature)."' WHERE iduser=$iduser";
    }
 
    else {
      $sql = "UPDATE users SET nomuser='".mysql_real_escape_string($nomuser)."', mailuser='".mysql_real_escape_string($mailuser)."', avatar='".mysql_real_escape_string($name_file)."', signature='".mysql_real_escape_string($signature)."' WHERE iduser=$iduser";
    }
 
    mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    //echo "<span style=\"color:green; font-size:14pt; font-weight:bold;\">Modification du torrent effectuée !</span>";
    header('Location: moncompte.php?id="'.$iduser.'"');
    $_GET['id'] = $iduser;
Le reste du code ne s'exécutera jamais ou bien pas entièrement à cause de la redirection. ;)

Script modif profil membre : sécurité

par mumbly » 03 nov. 2012, 15:34

Je cherche désespérément à mettre en place une "sécurité" dans le script suivant (script de modif de profil membre) afin que seul le propriétaire du profil puisse éditer son propre profil (ce qui parait évident :D !) ET qu'on ne puisse pas accéder à la page modif_profil avec un id vide (null).

Voici le script en question : http://pastebin.fr/25779

Toute autre proposition pour sécuriser le script sera la bienvenue.
Un grand merci à toutes/tous pour vos conseils.