我拥有来自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>
答案 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友好。至少应将>
替换为>
,将<
替换为<
,但应采取更多预防措施。您能否告诉我们您在服务器端使用的语言是什么? PHP有html_entities()
,但我不确定其他语言。