忽略html渲染中的用户数据

时间:2010-12-16 05:33:32

标签: html css

我拥有来自p element内部解析的数据库的用户数据。如果用户数据包含</p>开头。我的p element关闭。如何制作html渲染并防止用户数据操作p元素?

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

<print user data here>

</p>

2 个答案:

答案 0 :(得分:2)

如果您只是输出用户数据而不先检查它,那么问题比p标签关闭错误更大 - 您需要删除所有不安全(如果不是全部)HTML标记,尤其是<script>标记< /强>

如果您使用的是PHP,那么

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

将产生:“blah dangerousScript()”,摆脱<p><script>

您也可以提供允许的标签列表,如果您想要允许图像:

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

答案 1 :(得分:1)

您需要转义文本并使其对HTML友好。至少应将>替换为&gt;,将<替换为&lt;,但应采取更多预防措施。您能否告诉我们您在服务器端使用的语言是什么? PHP有html_entities(),但我不确定其他语言。