Maison > php教程 > php手册 > Utilisation de la fonction php mysql_real_escape_string et exemple de base de tutoriel_php

Utilisation de la fonction php mysql_real_escape_string et exemple de base de tutoriel_php

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-16 08:59:59
original
2892 Les gens l'ont consulté

Échappez les caractères spéciaux dans unescaped_string, en prenant en compte les paramètres de connexion du caractère actuel afin qu'il soit bien en place dans mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée

Les caractères suivants sont concernés :

  • x00
  • n
  • r
  • '
  • "
  • x1a

En cas de succès, la fonction renvoie la chaîne échappée. En cas d'échec, renvoie false.

Grammaire

mysql_real_escape_string(string,connection)
Copier après la connexion
参数 描述
string 必需。规定要转义的字符串。
connection 可选。规定 MySQL 连接。如果未规定,则使用上一个连接。

Description

Cette fonction échappe aux caractères spéciaux dans une chaîne et prend en compte le jeu de caractères actuel de la connexion, elle peut donc être utilisée en toute sécurité avec mysql_query().

Conseils et remarques

Astuce : Vous pouvez utiliser cette fonction pour empêcher les attaques de bases de données.

Exemple

Exemple 1

Copier le code Le code est le suivant :

$con = mysql_connect( "localhost", "hello", "321");
if (!$con)
{
die('Impossible de se connecter : ' . mysql_error());
}

// Code pour obtenir le nom d'utilisateur et le mot de passe

// Échapper au nom d'utilisateur et au mot de passe à utiliser dans SQL
$user = mysql_real_escape_string($user);
$pwd = mysql_real_escape_string($pwd);

$sql = "SELECT * FROM users WHERE
user='" $user . "' AND password='" $pwd .

//Plus de codes

mysql_close($con);

?>

Exemple 2

Attaque de base de données. Cet exemple montre ce qui se passe si nous n'appliquons pas la fonction mysql_real_escape_string() au nom d'utilisateur et au mot de passe :

Copier le code Le code est le suivant :
$con = mysql_connect( "localhost", "hello", "321");
if (!$con)
{
die('Impossible de se connecter : ' . mysql_error());
}

$sql = "SELECT * FROM utilisateurs

WHERE user='{$_POST['user']}'
AND password='{$_POST['pwd']}'";
mysql_query($sql);

// Ne vérifie pas le nom d'utilisateur et le mot de passe

// Peut être n'importe quel élément saisi par l'utilisateur, tel que :
$_POST['user'] = 'john';
$_POST['pwd '] = "' OU ''='";

// Du code...

mysql_close($con);

?>

Ensuite, la requête SQL ressemblera à ceci :

SELECT * FROM users

WHERE user='john' AND password='' OR ''='' Cela signifie que tout utilisateur peut se connecter sans saisir de mot de passe valide.

Exemple 3

Méthode correcte pour empêcher les attaques de bases de données :

Copier le code Le code est le suivant :
fonction check_input ($value )
{
// Supprimer les barres obliques
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Si pas un nombre Ensuite, ajoutez des guillemets
if (!is_numeric($value))
{
$value = "'" mysql_real_escape_string($value) ''";
}
return. $valeur ;
}

$con = mysql_connect("localhost", "hello", "321");

if (!$con)
{
die('Impossible de se connecter : ' . mysql_error()) ;
}

// Effectuer du SQL sécurisé

$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = " SELECT * FROM utilisateurs WHERE
user=$user AND password=$pwd";

mysql_query($sql);

mysql_close($con);

?>

Étiquettes associées:
php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers numéros
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal