Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/08/2011, 09h13   #1
Invité de passage
 
romain Patafoin
Inscription : décembre 2009
Messages : 13
Détails du profil
Informations personnelles :
Nom : romain Patafoin

Informations forums :
Inscription : décembre 2009
Messages : 13
Points : 0
Points : 0
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....
gaucho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h04   #2
Membre à l'essai
 
Homme ToTo
Eleve ingénieur
Inscription : février 2010
Messages : 48
Détails du profil
Informations personnelles :
Nom : Homme ToTo
Localisation : France

Informations professionnelles :
Activité : Eleve ingénieur

Informations forums :
Inscription : février 2010
Messages : 48
Points : 22
Points : 22
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.
LyShAzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h05   #3
Membre Expert
 
Avatar de Doksuri
 
Tiger Scott
Développeur Web
Inscription : juin 2006
Messages : 1 247
Détails du profil
Informations personnelles :
Nom : Tiger Scott
Âge : 42

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juin 2006
Messages : 1 247
Points : 1 505
Points : 1 505
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
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

N'oubliez pas le Le tag resolu.

Need_!
Doksuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h06   #4
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 305
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 305
Points : 4 485
Points : 4 485
?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 ...
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 10h44   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
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 :
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
- ...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h17.


 
 
 
 
Partenaires

Hébergement Web