[PHP] Regex

Résolu
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -  
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'aimerais faire une regex qui permet de vérifier si il y a des balises script dans l'url.
J'ai une url comme ça :
.php?variable=
J'aimerais avoir une regex qui vérifie si il y a quelquechose comme ça :
.php?variable=<script>n'importequel caractere</script>

Voilà ^^'
A voir également:

12 réponses

Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
up ^^'
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
up...
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
up ^^
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
Up, c'est important :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Salut !

Quel est le but de l'opération ? Est-ce que c'est pour de la sécurité ? Si c'est ça, il y a probablement des moyens plus faciles...

Mais sinon, petite référence :
https://www.php.net/manual/en/function.preg-grep.php

Tu passes ce filtre-là :
$fl_array = preg_grep("\<script\>", $_GET["variable"]);


quand tu récupères ta variable de ton url... Ou quelque chose dans le genre. Dis-moi si ça répond à ta question...
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
En fait j'ai besoin de faire un truc de ce genre :
if (isset($_GET['variable']) AND ...regex pour savoir si il y a <script>...</script> dans l'url...)
{
	echo 'Il y a des balises script dans l'url';
	}
	
else
{
echo '...';
}
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
$erreur = '';

if (isset($_GET['variable'])) {
	$erreur = preg_grep("\<.*script.*\>", $_GET["variable"]);

	if (count($erreur) > 1) {
		echo 'Il y a des balises script dans l'url';
	} else {
		echo 'Pas d\'erreur !';
	}
}


Je n'ai pas testé... Dis-moi si ça marche... :-S
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
Warning: preg_grep() expects parameter 2 to be array, string given in C:\... on line 5

Ligne 5 : $erreur = preg_grep("\<.*script.*\>", $_GET["variable"]);
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Mmmmmm essaie avec preg_match au lieu de preg_grep ?
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
Merci, ça marche, par contre fallait juste rajouter les '#' au début et à la fin :D
Seul soucis, ça marche si on fait
.php?variable=<script>
J'aimerais que cela marche que si la balise est refermée..
Si c'est possible :s
Merci d'avance
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
up
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Dans ce cas :

preg_grep("\<.*script.*\>.*\</.*script.*\>", $_GET["variable"]);

Je pense que ça devrait faire l'affaire ;-)
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
J'ai changé ton code par
preg_match("#\<.*script.*\>.*\</.*script.*\>#", $_GET["variable"])


...Et ça marche! merci beaucoup ^^
0
coeus Messages postés 3021 Date d'inscription   Statut Membre Dernière intervention   119
 
Content d'aider ! ;-)
0
ktm620enduro Messages postés 293 Date d'inscription   Statut Membre Dernière intervention   38
 
.php?variable=<script><script><script></script></script></script>
n'importe quel caractere meme ceci ?
0
Luxerails Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   41
 
Oui, vraiment n'importequoi du moment que ca commence par <script> et se finit par </script>.
0