8795 sujets

Développement web côté serveur, CMS

Bonjour,

Lorsque j'injecte un Javascript dans l'input d'un formulaire, le script ne se lance pas.

Je m'explique:

Voici le code de la page cible:

cible.php
<?php echo $_POST['test']; ?>


et le formulaire qui pointe vers cible.php:

formulaire.php
<input type="text" name="test"/>


Normalement, si je lance la page formulaire.php en injectant dans l'input un script comme celui-ci:

<script type="text/javascript">alert('Boum')</script>


Je serai redirigé vers ma page cible.php et là, la fenêtre "boum" devrait apparaître... Ce qui n'est pas le cas!!

Quelqu'un aurait une idée pourquoi le script ne se lance pas?

Merci d'avance!
Modifié par Geoffrey C. (26 Jan 2012 - 15:08)
Merci pour ta réponse.

Le script ne fait qu'ouvrir une fenêtre avec le mot "boum".... je ne pense pas que ce script fasse autre chose.

Le but de ma démarche (injecter ce script) est juste de voir ce que provoque un script injecté dans un "input" de formulaire qui n'est pas sécurisé.

Quand j'injecte du code HTML comme:

<strong>coucou</strong>


et que la récupération des données n'est pas sécurisée, on voit bien que les balises HTML sont actives et donc que le code est bien interprété.

Le problème c'est que ce n'est pas le cas avec ce script:

<script type="text/javascript">alert('Boum')</script>


Je me demande pourquoi... Smiley ohwell
et pour essayer d'être complet;

ce "fameux" script:
<script type="text/javascript">alert('Boum')</script>


quand il est écrit dans une page html comme celle-ci:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Document sans nom</title>
</head>

<body>
<script type="text/javascript">alert('Boum')</script>
</body>
</html>


il fonctionne très bien...Une petit fenêtre apparaît bien...

Pourquoi cela ne marche-t-il pas quand il est injecté et récupéré dans la page cible.php??

Quelqu'un aurait-il une idée?
Il se passe quoi exactement, tu arrives bien sur cible.php ou pas ? Tu peux voir le code source de cible.php ?
Bonjour,

Oui, j'arrive bien sur la page cible.php mais la page reste blanche comme si le script avait été exécuté (je le suppose puisque on ne voit pas le résultat de celui-ci).

J'ai essayé de mettre la fonction qui permet de ne pas faire exécuter le script comme ceci:

<?php echo htmlspecialchars($_POST['test']); ?>


Et là, évidemment, le script n'est pas exécuté... On voit bien le script apparaître avec les balises.

J'ai essayé comme ceci aussi:

<?php echo stripslashes($_POST['test']); ?>


Mais là non plus, ça ne fonctionne pas...

Je ne comprends vraiment pas pourquoi ce script ne fonctionne pas quand il est injecté dans un "input" de formulaire. Smiley ohwell
Modifié par sl@hotmail.com (24 Jan 2012 - 11:46)
Problème résolu...

En fait, avec la fonction stripslashes, cela fonctionne mais SOUS FIREFOX (Je ne sais pas sous I.E.)

Sous Safari et Chrome, le script n'est pas exécuté... Mais ça, c'est une autre histoire!

Voilà!