0% ont trouvé ce document utile (0 vote)
8 vues2 pages

Sécuriser $_GET avec htmlspecialchars()

Transféré par

ayadnoureddine2011
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues2 pages

Sécuriser $_GET avec htmlspecialchars()

Transféré par

ayadnoureddine2011
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

Explication de la ligne de code PHP :

htmlspecialchars($_GET["error"]);
La ligne de code suivante :

$error = htmlspecialchars($_GET["error"]);

Effectue plusieurs opérations dans un seul processus. Voici une explication détaillée de ce
que fait chaque partie :

1. $_GET["error"]
- **$_GET** est une superglobale en PHP qui récupère les données envoyées via la méthode
HTTP GET. Ces données sont généralement transmises dans l'URL sous forme de
paramètres.

- **$_GET["error"]** accède à un paramètre spécifique appelé "error". Par exemple, si l'URL


de ta page ressemble à ceci :
[Link]?error=wrong_password

La valeur de **$_GET["error"]** sera **"wrong_password"**.

2. htmlspecialchars()
La fonction **htmlspecialchars()** en PHP convertit certains caractères spéciaux en entités
HTML. Cela empêche des attaques de type **XSS (Cross-Site Scripting)**, où un utilisateur
malveillant pourrait injecter du code HTML ou JavaScript dans le paramètre URL
($_GET["error"]) et causer des comportements indésirables ou des failles de sécurité.

Par exemple :
- Le caractère `<` (inférieur) devient **`&lt;`**.
- Le caractère `>` (supérieur) devient **`&gt;`**.
- Le caractère `&` (esperluette) devient **`&amp;`**.

Cela permet d'afficher ces caractères comme du texte brut plutôt que de les interpréter
comme du HTML.

Pourquoi utiliser htmlspecialchars() ici ?


Dans ton exemple, tu utilises **htmlspecialchars()** pour protéger le paramètre **"error"**
transmis dans l'URL avant de l'afficher dans ton HTML. Si un utilisateur malveillant parvient
à insérer un caractère HTML (comme `<script>`) dans l'URL, la fonction
**htmlspecialchars()** le transformera en une forme sécurisée pour l'affichage dans le
navigateur, par exemple, **`&lt;script&gt;`**, évitant ainsi l'exécution de code malveillant.

Exemple pratique
Si l'URL est :

[Link]?error=<script>alert('Hacked!');</script>

Sans **htmlspecialchars()**, le navigateur interpréterait et exécuterait le code JavaScript


contenu dans l'URL, ce qui pourrait entraîner une faille de sécurité.

Cependant, avec **htmlspecialchars()** :

$error = htmlspecialchars($_GET["error"]);

Le contenu de **$_GET["error"]** serait converti en une chaîne sécurisée :

&lt;script&gt;alert('Hacked!');&lt;/script&gt;

Cela serait affiché sous forme de texte brut sur la page au lieu d'être exécuté comme un
script, protégeant ainsi ton application contre les attaques XSS.

Résumé
La ligne **$error = htmlspecialchars($_GET["error"]);** :
- Récupère la valeur de l'URL passée via le paramètre **error** dans **$_GET**.
- Utilise la fonction **htmlspecialchars()** pour sécuriser cette valeur en convertissant
certains caractères spéciaux en entités HTML.
- Permet d'afficher la valeur du paramètre dans le HTML de manière sécurisée, en
empêchant les attaques XSS.

Cela aide à garantir que les données envoyées via l'URL sont affichées correctement et de
manière sécurisée dans ton application web.

Vous aimerez peut-être aussi