2010-12-16 189 views
0

J'ai les données utilisateur de la base de données qui analysent à l'intérieur p element. si les données utilisateur contiennent </p> pour commencer. mon p element sera fermer. comment rendre le rendu html et empêcher les données de l'utilisateur de manipuler l'élément p?ignore les données utilisateur en rendu html

<p style="overflow:auto; position:relative; width:600; height:290;border-width: 1px; border-style: solid; border-color: grey;"> 

<print user data here> 

</p> 

Répondre

2

Vous avez plus de problèmes que la balise p fermeture incorrecte si vous seulement les données utilisateur sortie sans vérifier d'abord - vous avez besoin de dépouiller toutes les balises HTML dangereux (sinon tous), en particulier <script> balises.

Si vous utilisez PHP par exemple,

strip_tags('<p>blah</p> <script>dangerousScript()</script>')

produira: "bla dangerousScript()", se débarrasser à la fois du <p> et <script>.

Vous pouvez fournir une liste des balises admissibles aussi, si dites que vous voulez autoriser les images:

strip_tags('<p>blah</p> <script>dangerousScript()</script>', '<img>')

+0

Vous utilisez le côté client, étiquette de bande? quelle bibliothèque? – cometta

+0

@cometta Non c'est côté serveur, c'est la norme PHP. Vous ne feriez pas ce côté client, vous le feriez immédiatement après avoir extrait les données de la base de données sur le serveur. –

+0

@cometta, je viens de remarquer que vous utilisez Java. Regardez ceci pour Java: http://stackoverflow.com/questions/240546/removing-html-from-a-java-string –

1

Vous devez échapper le texte et le rendre compatible HTML. Au strict minimum, remplacez > par &gt; et < par &lt;, mais d'autres précautions doivent être prises. Pourriez-vous s'il vous plaît nous dire quelle langue vous utilisez dans le côté serveur des choses? PHP a html_entities(), mais je ne suis pas sûr d'autres langues.

+0

je ne veux pas fuir html, parce que les données de l'utilisateur peuvent contenir valide html – cometta

+0

J'utilise java + tomcat – cometta