Maison  >  Article  >  développement back-end  >  Comment échapper aux ajouts de caractères en php

Comment échapper aux ajouts de caractères en php

PHPz
PHPzoriginal
2023-03-29 10:10:18697parcourir

Dans le développement PHP, il est souvent nécessaire d'ajouter des caractères d'échappement lors de la transmission ou du stockage des données pour empêcher l'injection SQL et d'autres attaques et erreurs d'opération. La fonction addlashes() est une fonction de caractère d'échappement classique. Cet article présentera la fonction de addlashes(), comment l'utiliser et à quoi faire attention.

1. La fonction de la fonction addlashes()

La fonction de la fonction addlashes() est d'ajouter des barres obliques inverses à la chaîne spécifiée pour échapper à certains caractères spéciaux. Ces caractères spéciaux incluent les guillemets simples ('), les guillemets doubles ("), la barre oblique inverse () et NULL (NUL). La syntaxe de la fonction

addslashes() est la suivante :

string addslashes ( string $str )

où le paramètre $str représente la nécessité de add backslashes String.

2. Utilisez la fonction addlashes()

L'utilisation de la fonction addslashes() est très simple. Il vous suffit de transmettre la chaîne qui doit être échappée. Le résultat est :

<?php
$str = "I&#39;m a developer.";
echo addslashes($str);
?>

Vous pouvez voir que la fonction addlashes() ajoute une barre oblique inverse avant le guillemet simple dans la chaîne. S'il n'y a pas d'autres caractères avant le guillemet simple, il n'est pas nécessaire d'ajouter une barre oblique inverse

In. En général, nous ajoutons la barre oblique inverse aux données. Vous devez utiliser la fonction addlashes() pour vous échapper avant de les stocker dans la base de données. Voici un exemple de stockage des noms d'utilisateur et des mots de passe :

I\'m a developer.

Le code ci-dessus utilise la fonction addlashes() pour. échappez le nom d'utilisateur et le mot de passe et stockez-les dans la base de données. Cela peut efficacement éviter l'injection SQL et d'autres attaques

3. Notes sur la fonction addlashes()

Bien que la fonction addlashes() fournisse une méthode de base pour échapper des caractères, elle est utilisée pour échapper au nom d'utilisateur et au mot de passe. Il y a également quelques problèmes auxquels il faut prêter attention.

1. La fonction addlashes() ne peut pas empêcher complètement l'injection SQL

Bien que la fonction addlashes() puisse empêcher les attaques par injection SQL dans une certaine mesure, elle ne peut toujours pas garantir une sécurité complète. Par conséquent, d'autres mesures de sécurité doivent être prises lors du développement réel, telles que l'utilisation d'instructions préparées par PDO, l'utilisation de liaisons de paramètres, etc.

2. La fonction addlashes() ne fonctionne qu'avec des guillemets simples et doubles. n'échappez aux guillemets simples et doubles que si vous avez besoin d'échapper à d'autres guillemets spéciaux, tels que la barre oblique inverse, peuvent utiliser une autre fonction en PHP : str_replace()

3. 4.3.0, il existait une option de configuration globale appelée magic_quotes_gpc. Si cette option est activée, PHP appliquera automatiquement la fonction addlashes() à toutes les soumissions GET, POST et COOKIE. Ce comportement a provoqué des problèmes de sécurité et a été supprimé dans PHP. 5.4.0. Il est recommandé d'appeler explicitement la fonction addlashes() dans le code

4. Conclusion La fonction addlashes() est une fonction d'échappement de caractères PHP très basique qui peut assurer dans une certaine mesure la sécurité du code. Ce n'est pas le meilleur moyen de résoudre des attaques telles que l'injection SQL. Dans le processus de développement actuel, des mesures de sécurité plus complètes doivent être prises pour garantir la sécurité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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