4 votes

Comment se fait-il que lorsque j'affiche JavaScript dans un TextArea, il s'exécute ?

Lorsqu'il y a <script> comme valeur de la zone de texte, il exécute le script.

Y a-t-il un moyen d'empêcher cela ?

5voto

Kevin Points 57797

Parce que TextArea ( <textarea>...</textarea> ) est un nœud qui peut contenir des nœuds internes. Les nœuds internes sont toujours valides, de sorte que le navigateur interprète la balise script et exécute le code.

C'est une très bonne raison pour laquelle vous devez toujours valider ce que l'utilisateur saisit et envoie au serveur. Si vous affichez cette entrée plus tard, elle peut s'exécuter comme si vous aviez voulu insérer vous-même la balise script.

Pour l'arrêter, vous devez coder les balises < = &lt; and > = &gt;

Un concept similaire est d'avoir des nœuds qui ne sont pas des html valides tels que <myInvalidTag><script></script></myInvalidTag> . Le navigateur exécutera quand même le code qu'il contient.

5voto

dtbarne Points 4066

Vous devez coder les balises :

<textarea>
&lt;script type=&quot;text/javascript&quot;&gt;&lt/script&gt;
</textarea>

En PHP, vous pouvez le faire avec htmlentities() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X