Problème pour creer une fonction

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 : Problème pour creer une fonction

Re: Problème pour creer une fonction

par mere-teresa » 11 mai 2007, 17:26

Je desespere un peu de pas arriver a faire une chose simple avec la doc a portée de main...

Je veut simplement creer une fonction qui me netoie une variable envoyé par un formulaire
Tout d'abord bravo ! Il faut TOUJOURS filtrer les entrées utilisateur.


Si ta fonction cleancode() ne fait qu'un strip_tags, pourquoi ne pas appliquer directement strip_tags à ta donnée ?

par supercanard » 11 mai 2007, 16:40

En fait tu as peur de l'injection sql, google t'en dira plus.

Par contre pour mysql le commande mysql_escape_string() devrais te rassurer concernant cette problématique
Merci
Une piste =)

par Maitrepylos » 11 mai 2007, 16:33

En fait tu as peur de l'injection sql, google t'en dira plus.

Par contre pour mysql le commande mysql_escape_string() devrais te rassurer concernant cette problématique

par supercanard » 11 mai 2007, 16:29

Bon alors.

1 $_POST n'est pas passé en URL, c'est $_GET
2 pourquoi demander un select affichant le passwd, ce n'est certainement pas à l'utilisateur de savoir ça, mais bien à l'administrateur.


donc je te vois venir, si l'utilisateur veut modifier son passwd dans une interface d'administration, c'est qu'au préalable il s'est connecté et que tu as vérifié que c'est bien lui.

Si l'utilisateur à perdu sont mot de passe c'est à toi de lui fournir via un système de mail par exemple.
Non mais ça daccord, en fait c'est sur un formulaire pour se loger, aucune session n'existe donc encore. Mais je disais cet exemple est bidon puisque y a pas vraiment de risque.
Mais je voulais savoir si dans le cas ou il y avait toutes ces contraintes il y avait une solution...

par Maitrepylos » 11 mai 2007, 16:23

Bon alors.

1 $_POST n'est pas passé en URL, c'est $_GET
2 pourquoi demander un select affichant le passwd, ce n'est certainement pas à l'utilisateur de savoir ça, mais bien à l'administrateur.


donc je te vois venir, si l'utilisateur veut modifier son passwd dans une interface d'administration, c'est qu'au préalable il s'est connecté et que tu as vérifié que c'est bien lui.

Si l'utilisateur à perdu sont mot de passe c'est à toi de lui fournir via un système de mail par exemple.

par supercanard » 11 mai 2007, 16:11

ben alors dans ton if tu initialise un variable $login à laquelle tu affectes le résultat de ta fonction cleancode

   $login= cleancode($_POST['login']);


utilise donc cette variable dans ton select

$req= "SELECT pwd FROM ipi_users WHERE login='".$login."'";
Euh wi mais donc ma requete est plus sécurisé du tout...
Y suffit d'envoyer une url avec login=machinchouette et pof on affiche le mot de pass de machinchouette ?

par Maitrepylos » 11 mai 2007, 16:08

ben alors dans ton if tu initialise un variable $login à laquelle tu affectes le résultat de ta fonction cleancode

   $login= cleancode($_POST['login']);


utilise donc cette variable dans ton select

$req= "SELECT pwd FROM ipi_users WHERE login='".$login."'";

par supercanard » 11 mai 2007, 16:06

Mais la n'est pas le probleme en fait. Même si cet exemple est pas terrible je pense que ça peut servir pour d'autres exemples.

Si je remplace $_POST['login'] par login dans ma requete... la c'est plus grave puisqu'on va pouvoir passer des variables par l'url.

par supercanard » 11 mai 2007, 16:03

Et pourquoi penses-tu que ce que tu reçois par $_POST[login] contient des tags html et php ?
Y'a toujours des petits malins qui envoi du HTML genre pour afficher en gras, tout ça; je prefere eviter...

par Maitrepylos » 11 mai 2007, 16:00

Et pourquoi penses-tu que ce que tu reçois par $_POST[login] contient des tags html et php ?

par supercanard » 11 mai 2007, 15:53

je dirais que $tmp est peut-être local à la fonction ?
Moi j'aurais mis:
$tmp2 = cleancode($_POST['login']); 
      echo $tmp2; 
Ah oui c'st mieux comme ça...

Maintenant si je fait ça :

Code : Tout sélectionner

if (isset($_POST['login'])) { $login= cleancode($_POST['login']); $req= "SELECT pwd FROM ipi_users WHERE login='".$_POST['login']."'"; $result= mysql_query($req); $data= mysql_fetch_array($result);
Il y a soucis non ?
Car dans la requete on va utiliser la variable du formulaire, donc celle qui n'est pas nétoyée ?
Mais si j'utilise la variable nétoyée, il y a du coup une faille dans la requête... même si la dans l'exemple ça ne risque rien, mais c'est pour savoir...

par lem » 11 mai 2007, 15:43

je dirais que $tmp est peut-être local à la fonction ?
Moi j'aurais mis:
$tmp2 = cleancode($_POST['login']); 
      echo $tmp2; 

Problème pour creer une fonction

par supercanard » 11 mai 2007, 15:41

Bonjour,

Je desespere un peu de pas arriver a faire une chose simple avec la doc a portée de main...

Je veut simplement creer une fonction qui me netoie une variable envoyé par un formulaire :

Code : Tout sélectionner

function cleancode($tmp) { // SUPPRESSION DES BALISES HTML ET PHP $tmp= strip_tags($tmp); return $tmp; } cleancode($_POST['login']); echo $tmp; exit();
Je ne vois pas l'erreur et vous :?