Sécuriser une fonction $_GET

Résolu
Mitrails Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -  
Mitrails Messages postés 42 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Voila j'aimerais juste savoir si ce que j'utilise avec la fonction GET était bien sécuriser contre les injections SQL, failles etc ..

if(isset($_GET['effacers']))
{
$id = mysqli_real_escape_string($connect, htmlentities(stripslashes(trim(intval($_GET['effacers'])))));


Voila merci d'avance pour vos réponse merci
A voir également:

1 réponse

ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
'lut, non, car tu utilises la vieille manière de sécuriser ses entrées:
mysqli_real_escape_string
est laissée pour quasi-compatibilité avec la vieille extension MySQL, mais il ne faut pas s'en servir pour autant! Il faut se servir des requêtes préparées.
Surtout que là c'est pour une variable
$id
qui pourrait être utilisée autre part que dans ta base, or là c'est un string alors que c'est en réalité un entier.
De plus, tu voudras vérifier si l'ID est correct, c-à-d un entier correctement représenté:
if(isset($_GET['effacers']))
{
	if(is_int($_GET['effacers']))
	{
		$id = intval($_GET['effacers']);
		$stmt = mysqli_prepare($bdd, "DELETE FROM mabase WHERE id=?");
		mysqli_stmt_bind_param($stmt, 'i', $id); // 'i' représente le type du paramètre: entier
		if (mysqli_stmt_execute($stmt)) {
			// ligne supprimée
		} else {
			// erreur, ligne inexistante
		}
		mysqli_stmt_close($stmt);
	} else {
		// erreur, le paramètre n'est pas bon
	}
}

from human import idiocy
del idiocy
0
Mitrails Messages postés 42 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord merci
0