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 :

site web et php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 22
    Points : 18
    Points
    18
    Par défaut site web et php
    hello...

    Je débute en programmation html et surtout en php..
    J'ai trouver un peu de code sur internet pour mettre en place un formulaire en PHP.

    j'ai lu qu'on pouvait tester la vulnérabilité de son site (injection SQL) en tapant après l'adresse " ?id=1 ou 2 ect... "

    Quelqu'un peut il m'expliquer ce que veut dire ce "?id=" avec un chiffre à coté...

    Comment tester la fiabilité de mon site (surtout envers les injections SQL )..


    Merci....

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur E&D
    Inscrit en
    Février 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur E&D

    Informations forums :
    Inscription : Février 2010
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    L'injection sql permet (le plus souvent d'accéder à une base de données même si elle est protégé par identifiant et mot de passe)
    http://adsltele.free.fr/tutoriel-injection-sql.php
    Le ?id=1 dont tu parlais sont les parametres de l'url que tu utilise en php pour transferer les informations. Renseigne toi sur les methodes POST et GET utilisé en PHP.
    Pour se protéger des injections sql, utilise html_special_char (empeche l'execution de javascript) ou mysql_real_escape_string. Tu trouveras facilement sur le net comment les utiliser !
    http://fr.wikipedia.org/wiki/Injection_SQL

    Cordialement.

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 476
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 476
    Points : 4 687
    Points
    4 687
    Par défaut
    salut,

    tu as toute la doc sur le net pour les injections sql (dont tu connais le terme en plus)
    mais pour faire simple, ca consiste a modifier le comportement d'une requete sql au travers de l'url ou d'un formulaire...

    mais comme c'est un forum d'honnetes gens, je n'irai pas dans les details xD

    => toujours verifier l'exactitudes des donnees entree par un utilisateur (ne jamais lui faire confiance)
    => echaper les caracteres speciaux, ou les encoder

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    ?id pourrais être ?toto ou autre. lorsque tu passe des variables via formulaire ou lien hypertexte, les données transmise en "get" corresponde à la suite ?mapremierevariable=mavaleur&madeuxiemevariable=mavaleur .....

    en fait le but d'un formulaire en générale avec traitement php et de pouvoir stocker les données en base de données. donc le fait d'utiliser ?id permet de passer outre l'exécution normal de ta requête dans le cas ou justement tu dispose d'un champ dont le nom est id par exemple.

    bref, pour éviter se genre de désagrément, un ensemble de bonne pratique en terme de développement existe. reste à lire les tutos et autres ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    mon conseil est d'éviter de paniquer (!)
    On se protège assez facilement de la majorité des cas de tentatives d'injection SQL.

    Dans le principe :
    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
    <?php
    // 1/ RECUPERATION
    	// récupération en POST (donnée transmise via formulaire)
    	$lavariable = stripslashes(trim($_POST['lavariable']));
     
    	// OU récupération en GET (donnée transmise via l'URL)
    	$lavariable = urldecode($_GET['lavariable']);
     
    // 2/ GESTION d'ERREUR (eventuellement)
    	// on verifie que les données sont correctes
    	// validation email, validation mdp, champs obligatoires, .....
    	// [...]
     
    // 3/ PROTECTION avant enregistrement en BdD
    	// protection contre injection SQL
    	$lavariable_bd = mysql_real_escape_string($lavariable);
     
    // 4/ ENREGISTREMENT en BdD
    	// enregistrement INSERT
    	$query_insert = "INSERT INTO latable 
    					(....., lechamp, .....) 
    					VALUES 
    					(....., '".$lavariable_bd."', .....);";
    	// [...]
     
    	// OU enregistrement UPDATE
    	$query_update = "UPDATE latable SET 
    					..... = '.....', 
    					lechamp = '".$lavariable_bd."', 
    					..... = '.....' 
    					WHERE id = '".$Id_bd."';";	
    	// [...]
    ?>
    Voir :
    - urlencode() - urldecode()
    - mysql_real_escape_string()

    + Lire les tutos (entre autres) :
    - PHP : Le tutoriel pour grands débutants pressés
    - PHP et les formulaires - Les formulaires et PHP5
    - Les meilleurs tutoriels SQL - Les fonctions dans SQL
    - ...
    Dernière modification par Invité ; 03/08/2011 à 11h01.

Discussions similaires

  1. [PHP-JS] Tester un site web en php
    Par bractar dans le forum Langage
    Réponses: 7
    Dernier message: 19/06/2007, 00h15
  2. site web multilingue / php
    Par AP dans le forum Langage
    Réponses: 4
    Dernier message: 14/05/2007, 16h38
  3. Réponses: 1
    Dernier message: 26/01/2007, 16h13
  4. Codes gratuits de site web en php
    Par b612 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 11/11/2005, 10h26
  5. [Sécurité] Masquer une partie de site web avec PHP
    Par Marc365 dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 15h30

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