Aller au contenu

Post et <?php


Proutie66

Messages recommandés

Bonjour à tous !

Voici mon petit problème :

J'ai un petit script ajax qui vient envoyer ( donc en javascript ) le contenu d'un formulaire à un script php .

Il fonctionne parfaitement et reçoit le _POST sans soucis sauf quand j'intègre la fameuse... <?php echo "lol"; ?>.

Là, la variable du _POSt m'indique le reste du contenu mais s'arrête à <?php ( qui n'est donc pas écrit ).

Dans mon cas de test, j'aurais pourtant besoin qu'il puisse tout lire.

Il me semble que _POST supprime les paramètres dangereux ( pour sql ou autre par exemple ).

En gros :

un <input type='text'> contient le texte suivant :

<p>Bonjouuuur!</p>

<?php echo "tu ne vas pas voir cela" ;?>

Le "bonjour" est vu, pas ,le <?php.

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprend pas le problème....

Tu pourrais être plus explicite ?

le "<?php blablabla " est bien vu... d'un point de vu php.

A l'affichage ca ne se voit pas parceque pour un browser <qqc> c'est un tag html, inconnu et donc pas affiché mais un tag quand même (cf source html de ta page), tant que tu ne fais pas de "eval($_POST['input'])", le code php ne sera pas interprété.

Tu auras d'ailleurs le même problème si le contenu de ton input c'est <lalala>...

En fait le cas particulier dans ton exemple c'est le <p>, pas le <?php ?>

Et non _POST ne supprime pas les paramètres dangereux, heureusement d'ailleurs, ca serait problématique à plein de niveaux... c'est à toi de définir ce que tu veux faire de ce qui est envoyé.

C'est très différent si tu affiches une balise <script> parceque c'est une vulnérabilité côté client (affiché par le serveur comme du texte normal, mais interprété par le browser après, exactement comme ton <p>).

Enfin si ton but c'est d'afficher le contenu exact de l'input htmlentities ou strip_tags est ton ami :smack:

En espérant avoir répondu à ta question.

Edit : j'ai par contre déjà vu des firewall applicatif qui bloquait les requêtes étranges, du genre $_POST['input']='";drop database X;' mais dans ce cas là tu tombes sur une page de blocage, en aucun cas ça ne modifie la valeur de tes paramètres

Lien vers le commentaire
Partager sur d’autres sites

Ca ressemble à ça.

<script type="text/javascript">
var tsna=setTimeout("saveautonews()",10000);
function saveautonews(i) {
var txtfck = FCKeditorAPI.GetInstance('ID').GetHTML();

dingdong('Fichier-PHP.php','saveauto=y&txt='+txtfck);
var tsna=setTimeout("saveautonews()",10000);

}
</script>

dingdong, c'est l'appel ajax. En gros ça envoi la valeur saveauto=y et txt=txtfck en POST.

Quand je récupère ça côté php, ça donne un truc du genre :

$txt = $_POST['txt'];

//echo "alert('Le txt : $txt');";

Il n'y a aucune protection à l'heure actuelle, volontairement, pour chercher ce qui cloche.

Je me demande si ça serait pas l'api fck qui vire elle même le <?php d'ailleurs, je vais test..

Lien vers le commentaire
Partager sur d’autres sites

Editer l'API FCK c'est casse gueule.... (je l'ai fait sur des anciennes version bugées il y a quelques années)

Tu aurais du commencer par dire que tu avais ça :

Le principe de fonctionnement de fck c'est de transformer du texte en code HTML à la volée, donc forcément si il tombe sur un tag qu'il ne connait pas il ne l'affiche pas dans la partie HTML (la seule vraiment à prendre en compte d'un point de vue code).

Par contre, il doit y avoir moyen de spécifier des options dans fck pour obtenir le résultat que tu veux, je te renvoie à la doc de config de fck : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html , des options comme entities, entities additional ou htmloutput peuvent correspondre à ce que tu veux faire.

Et pour finir la question qui tue : as tu vraiment besoin de fck ? C'est certes pratique pour la mise en page mais si tu es dans le cadre d'un input text simple c'est se compliquer énormément la vie pour pas grand chose.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...