何时使用htmlspecialchars()函数?

时间:2011-02-03 03:12:00

标签: php htmlspecialchars

您好 我想知道何时适合使用htmlspecialchars()。是在将数据插入数据库之前还是从数据库中检索数据时?

4 个答案:

答案 0 :(得分:30)

只有在将数据回显为HTML时才应调用此方法。

不要在数据库中存储转义的HTML;它会让查询更加烦人 数据库应存储您的实际数据,而不是其HTML表示。

答案 1 :(得分:12)

您使用htmlspecialchars 每隔时间在HTML中输出内容,因此它是内容而不是HTML。

如果您允许将内容视为HTML,那么您至少可以打开错误的大门,最糟糕的是总XSS黑客攻击。

答案 2 :(得分:4)

保存用户输入数据库的确切内容。 然后在将其显示给公众时,使用htmlspecialchars(),以便它提供一些xss保护。

答案 3 :(得分:1)

指南 - 如何在PHP中使用htmlspecialchars()函数

首先,您必须了解一个简单的概念:渲染。

Render是什么? 渲染是HTML转换的时间

<b>Hello</b>

像这样加粗你好。这是渲染。

所以...何时使用htmlspecialchars()函数?

您想要呈现HTML内容的任何位置。 例如,如果您正在使用JQuery并执行此操作:

$("#YourDiv").html("<b>Hello</b>");

div内容为 Hello 。它将文本呈现为HTML。

如果要以这种方式显示消息(由用户编写):

<b>Hello</b>

你必须把:

$("#YourDiv").text("<b>Hello</b>");

这样就永远不会呈现Hello。

如果你想把消息(由用户写的)加载到文本框,textarea等中...你必须把:

<input type="text" class="Texbox1" value="">

<script>
$(".Textbox1").val("<b>Hello</b>");
</script>

将显示

 <b>Hello</b>

文本框内没有问题。

<强>结论:

用户输入表格的数据等等......正常保存数据。 不要使用任何功能。如果用户发送12345保存原样。不要过滤任何东西。您只需要在将页面中的数据显示给用户时进行过滤。你,只有你决定是否要渲染用户所写的内容。 *记住这一点。

问候!