[Php] Exp. Reg. j'ai encore du mal :-(
Fermé
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
-
11 déc. 2004 à 18:05
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 - 5 janv. 2005 à 19:21
GallyNet Messages postés 434 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 15 décembre 2008 - 5 janv. 2005 à 19:21
A voir également:
- [Php] Exp. Reg. j'ai encore du mal :-(
- Reg cleaner - Télécharger - Nettoyage
- Easy php - Télécharger - Divers Web & Internet
- Multi exp pokemon heartgold - Forum Pokémon
- Retour a la ligne php ✓ - Forum PHP
- Multi exp pokemon diamant - Forum Jeux vidéo
9 réponses
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
15 déc. 2004 à 23:00
15 déc. 2004 à 23:00
Up..... :-)
var a=unescape("%3A-%29"); document.write(a);
Babylontiti
Messages postés
59
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
8 février 2007
28
16 déc. 2004 à 20:40
16 déc. 2004 à 20:40
Bonsoir kilian,
J'ai réussi à supprimer les balises <script language=""></script> et ce qu'elle contiennent.
Par contre j'ai utilisé un fichier texte externe pour l'exemple, vu que je ne sais pas quelle processus d'entrée tu utilises !
essaye ceci:
<?php
$filename = "script.txt"; //fichier dans le même répertoire
$file = fopen($filename,"rb"); //Ouverture du fichier en lecture seule "r" et binaire"b"(compatibilité windows)
while($f = fread($file,filesize($filename))){ //Tant que y'a des lignes dans le fichier...
$texte = eregi_replace('(<script [^<]*language=["|\']?([^ "\']*)["|\']?[^>].*>([^<]*).*</script>)','', $f); //Remplacement des balises <script>etc.
echo("$texte"); //affichage du résultat
}
fclose($file); //fermeture du pointeur
?>
Voilà, à toi de jouer maintenant,
personnalises tout ceci pour que ça concorde mieux à ton script.
PS:J'ai aussi appris en essayant de résoudre ton problème, alors merci de t'être poser la question... ;-)
@+
"La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
J'ai réussi à supprimer les balises <script language=""></script> et ce qu'elle contiennent.
Par contre j'ai utilisé un fichier texte externe pour l'exemple, vu que je ne sais pas quelle processus d'entrée tu utilises !
essaye ceci:
<?php
$filename = "script.txt"; //fichier dans le même répertoire
$file = fopen($filename,"rb"); //Ouverture du fichier en lecture seule "r" et binaire"b"(compatibilité windows)
while($f = fread($file,filesize($filename))){ //Tant que y'a des lignes dans le fichier...
$texte = eregi_replace('(<script [^<]*language=["|\']?([^ "\']*)["|\']?[^>].*>([^<]*).*</script>)','', $f); //Remplacement des balises <script>etc.
echo("$texte"); //affichage du résultat
}
fclose($file); //fermeture du pointeur
?>
Voilà, à toi de jouer maintenant,
personnalises tout ceci pour que ça concorde mieux à ton script.
PS:J'ai aussi appris en essayant de résoudre ton problème, alors merci de t'être poser la question... ;-)
@+
"La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
17 déc. 2004 à 00:57
17 déc. 2004 à 00:57
Woah! Sacrée expression régulière. D'ailleurs j'ai pas tout compris mais je vais regarder ça bientôt ;-)
Pas ce soir hélas! Je me reveille tôt demain :-(
En tout cas merci beaucoup de t'être penché sur le problème. Je t'en donnerai des nouvelles rapidement ;-)
Pour info, mon entrée c'est un formulaire. J'ai besoin d'enlever les balises <script> pour des raisons de sécurité, au cas ou... Il faudras que je fasse la même chose pour enlever les balises <?, ?>; <% et %> et ce qu'elles contiennent mais ce sera pour après :-)
Je suppose que si ça marche pour un fichier, ça marchera pour un formulaire.
Merci beaucoup en tout cas :-)
Pas ce soir hélas! Je me reveille tôt demain :-(
En tout cas merci beaucoup de t'être penché sur le problème. Je t'en donnerai des nouvelles rapidement ;-)
Pour info, mon entrée c'est un formulaire. J'ai besoin d'enlever les balises <script> pour des raisons de sécurité, au cas ou... Il faudras que je fasse la même chose pour enlever les balises <?, ?>; <% et %> et ce qu'elles contiennent mais ce sera pour après :-)
Je suppose que si ça marche pour un fichier, ça marchera pour un formulaire.
Merci beaucoup en tout cas :-)
var a=unescape("%3A-%29"); document.write(a);
Si c'est pour empêcher l'injection de script dans une base de données (par exemple), n'oublie pas les situations suivantes:
-balise script non fermée
-script dans les évènements de balise (onclick, onmouseover, etc)
Caro
-balise script non fermée
-script dans les évènements de balise (onclick, onmouseover, etc)
Caro
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
18 déc. 2004 à 03:54
18 déc. 2004 à 03:54
Salut Car0,
En effet j'avais pas pensé à tout ça :-)
Pour tout t'avouer, la page en question est très peu fréquentée et poster dans ce formulaire nécessite certains droits au départ. Donc ça limite les risques. Ce script n'est pas vraiment necessaire, c'est surtout pour m'entrainer...
Mais je garde ton idée de côté pour plus tard ;-)
Je teste bientôt ton script Babylontiti :-)
En effet j'avais pas pensé à tout ça :-)
Pour tout t'avouer, la page en question est très peu fréquentée et poster dans ce formulaire nécessite certains droits au départ. Donc ça limite les risques. Ce script n'est pas vraiment necessaire, c'est surtout pour m'entrainer...
Mais je garde ton idée de côté pour plus tard ;-)
Je teste bientôt ton script Babylontiti :-)
var a=unescape("%3A-%29"); document.write(a);
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
4 janv. 2005 à 09:23
4 janv. 2005 à 09:23
Salut Babylontiti,
J'ai essayé ton script mais ça me retourne une page blanche.
Mon texte à filtrer vient d'une variable et non pas d'un ficher comme dans ton script... Je rééssaierai plus tard...
Désolé de répondre aussi tard :-|
J'ai essayé ton script mais ça me retourne une page blanche.
Mon texte à filtrer vient d'une variable et non pas d'un ficher comme dans ton script... Je rééssaierai plus tard...
Désolé de répondre aussi tard :-|
Sm95ZXVzZXMgZup0ZXMgOi0p
Babylontiti
Messages postés
59
Date d'inscription
mercredi 4 août 2004
Statut
Membre
Dernière intervention
8 février 2007
28
5 janv. 2005 à 00:50
5 janv. 2005 à 00:50
Salut Kilian,Car0 et Bonne Année à tous...! ;-)
Dans mon exemple, le fichier "script.txt" n'est pas vide, il contient une page web agrémentée de balises JavaScript !
Tapes du texte (ou autre) entre les balises <body>Texte</body>, se qui aura pour effet de te retourner autre chose qu'une simple page blanche.
Voici son contenu: (script.txt)
<html>
<head>
<title>Test ereg</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
function alert(){
window.open("index.php");
}
</SCRIPT>
<a href=javascript:alert()>Hello world !</a>
</body>
</html>
[Une fois le script éxecuté:]
Dans ton navigateur, affiche le 'code source de la page', le contenu seras "identique" sauf biensûr sans les balises <script></script> etc...
Donc le lien présent qui pointe vers une fonction Javascript ne pourras pas s'éxecuter.
Et voilou.
En attendant, j'essaye avec un formulaire et je reviendrais te l'afficher ici dès que j'y serais arrivé...!
@+
"La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
Dans mon exemple, le fichier "script.txt" n'est pas vide, il contient une page web agrémentée de balises JavaScript !
Tapes du texte (ou autre) entre les balises <body>Texte</body>, se qui aura pour effet de te retourner autre chose qu'une simple page blanche.
Voici son contenu: (script.txt)
<html>
<head>
<title>Test ereg</title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
function alert(){
window.open("index.php");
}
</SCRIPT>
<a href=javascript:alert()>Hello world !</a>
</body>
</html>
[Une fois le script éxecuté:]
Dans ton navigateur, affiche le 'code source de la page', le contenu seras "identique" sauf biensûr sans les balises <script></script> etc...
Donc le lien présent qui pointe vers une fonction Javascript ne pourras pas s'éxecuter.
Et voilou.
En attendant, j'essaye avec un formulaire et je reviendrais te l'afficher ici dès que j'y serais arrivé...!
@+
"La culture, c'est comme la confiture...
Moins on n'en as, plus on l'étale...!" ;-)
kilian
Messages postés
8732
Date d'inscription
vendredi 19 septembre 2003
Statut
Non membre
Dernière intervention
5 février 2025
1 526
5 janv. 2005 à 08:47
5 janv. 2005 à 08:47
Salut,
Voui j'avais bien compris, j'ai juste adapté le script pour que la source à analyser vienne d'une variable $a="<html>...</html>"; et non pas d'un fichier....
Mais il me semble que j'avais modifié un peu ton expression regulière....je sais plus pourquoi, je vais réessayer avec ton expression telle qu'elle.... Je te dirai ce que ça donne.
Merci encore :-)
Voui j'avais bien compris, j'ai juste adapté le script pour que la source à analyser vienne d'une variable $a="<html>...</html>"; et non pas d'un fichier....
Mais il me semble que j'avais modifié un peu ton expression regulière....je sais plus pourquoi, je vais réessayer avec ton expression telle qu'elle.... Je te dirai ce que ça donne.
Merci encore :-)
Sm95ZXVzZXMgZup0ZXMgOi0p
GallyNet
Messages postés
434
Date d'inscription
mardi 1 juin 2004
Statut
Membre
Dernière intervention
15 décembre 2008
387
5 janv. 2005 à 19:21
5 janv. 2005 à 19:21
Salut Babylontiti, j'ai regarder un peu ton expression régulière et je pense qu'elle ne marchera pas correctement:
- si jamais quelqu'un met les balise script à l'interrieur d'une chaine de caractère (entre " ou ')
- si il ne met pas language=" ", qui sera malgré tout pris en compte par certains navigateurs et exécuté en javascript (par defaut)
- si dans le code javascript on a le caractère '<'
- si jamais quelqu'un met les balise script à l'interrieur d'une chaine de caractère (entre " ou ')
- si il ne met pas language=" ", qui sera malgré tout pris en compte par certains navigateurs et exécuté en javascript (par defaut)
- si dans le code javascript on a le caractère '<'