Position actuelle: Accueil> Derniers articles> Guide pour améliorer la sécurité des fonctions PHP : protection contre les injections SQL et les attaques XSS

Guide pour améliorer la sécurité des fonctions PHP : protection contre les injections SQL et les attaques XSS

M66 2025-10-20

Orientation vers l'amélioration de la sécurité des fonctions PHP

Dans le développement PHP, assurer la sécurité des fonctions est crucial. Cet article présentera quelques améliorations clés pour aider les développeurs à écrire du code PHP plus sécurisé et plus fiable.

Utiliser des indices de saisie

Les indicateurs de type garantissent que les paramètres transmis à une fonction sont du type correct, évitant ainsi les erreurs causées par des types de données inattendus et réduisant les risques de sécurité potentiels.

 function add($a, $b): int
{
    return $a + $b;
}

// provoquera TypeError anormal
add('1', 2);

Éliminer les vulnérabilités d'injection SQL

L'injection SQL est un problème de sécurité courant et les attaquants peuvent obtenir des données sensibles en injectant des instructions SQL malveillantes. L'utilisation de requêtes paramétrées peut empêcher efficacement l'injection SQL.

 $statement = $conn->prepare("SELECT * FROM users WHERE username = ?");
$statement->bind_param("s", $username);

Empêcher les attaques de scripts intersites (XSS)

Les attaques XSS sont généralement effectuées en injectant un script malveillant dans une page Web. Utilisez le codage HTML pour générer en toute sécurité les données utilisateur et éviter l'exécution de scripts.

 function echoHtml($html)
{
    echo htmlspecialchars($html);
}

Valider la saisie de l'utilisateur

Les entrées de l'utilisateur peuvent contenir du code malveillant ou d'autres vecteurs d'attaque. Une vérification stricte doit être effectuée avant utilisation pour empêcher les données illégales de pénétrer dans le système.

 if (!preg_match('/^[a-zA-Z0-9]+$/', $input)) {
    throw new InvalidArgumentException();
}

Utilisez des bibliothèques sécurisées

PHP fournit une variété de bibliothèques de sécurité, telles que PasswordHash, Crypto, etc., qui peuvent être utilisées pour générer en toute sécurité des valeurs de hachage, crypter et déchiffrer des données sensibles.

 $hash = password_hash($password, PASSWORD_DEFAULT);

Cas pratique : renforcer la sécurité des fonctions

Supposons que vous disposiez d'une fonction qui traite les entrées de l'utilisateur et génère une instruction SQL :

 function generateSql($id)
{
    return "SELECT * FROM users WHERE id = $id";
}

Pour améliorer la sécurité, les améliorations suivantes peuvent être apportées :

  • Utilisez des indices de type pour vous assurer que $id est un entier
  • Utiliser des requêtes paramétrées pour empêcher l'injection SQL
 function generateSql($id): string
{
    $statement = $conn->prepare("SELECT * FROM users WHERE id = ?");
    $statement->bind_param("i", $id);
    
    return $statement;
}

Grâce à ces mesures, la sécurité des fonctions PHP peut être considérablement améliorée et le risque d'attaques d'applications peut être réduit.