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

Comment échapper aux ajouts de caractères en php

PHPz
Libérer: 2023-03-29 11:03:29
original
765 Les gens l'ont consulté

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 )
Copier après la connexion

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);
?>
Copier après la connexion

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.
Copier après la connexion

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal