何时使用htmlspecialchars()函数?
嗨,我想知道什么时候是适当的地方使用htmlspecialchars()。 在将数据插入数据库之前还是从数据库中检索数据之前?
只有在将数据回送到HTML时才应调用此方法。
不要在数据库中存储转义的HTML; 它只会让查询更烦人。
数据库应该存储您的实际数据,而不是HTML表示。
你使用htmlspecialchars
每次你在HTML中输出内容,所以它是interperted作为内容而不是HTML。
如果您允许将内容视为HTML,那么您至less已经打开了错误的大门,最坏的情况是总的XSS被黑客入侵。
保存用户input数据库的确切内容。 那么当显示给公众时,使用htmlspecialchars()
,以便它提供一些xss保护。
指南 – 如何在PHP中使用htmlspecialchars()函数
首先,你必须了解一个简单的概念:渲染。
什么是渲染? 渲染是在HTML转换的时候
<b>Hello</b>
大胆的像这样你好 。 这是渲染。
那么…何时使用htmlspecialchars()函数?
无论你想呈现HTML内容。 例如,如果你正在使用JQuery,你这样做:
$("#YourDiv").html("<b>Hello</b>");
div的内容将是你好 。 它将文本呈现为HTML。
如果要以这种方式显示消息(由用户编写):
<b>Hello</b>
你必须把:
$("#YourDiv").text("<b>Hello</b>");
这样,你就永远不会被渲染。
如果你想加载消息(如用户写的)到一个文本框,textarea等…你必须把:
<input type="text" class="Texbox1" value=""> <script> $(".Textbox1").val("<b>Hello</b>"); </script>
这将显示
<b>Hello</b>
在文本框内没有问题。
结论:
用户input到表单中的数据等等…正常地保存数据。 不要使用任何function。 如果用户发送12345保存原样。 不要过滤任何东西。 您只需在要将页面中的数据显示给用户时进行过滤。 您,只有您决定是否要渲染用户写的内容。 *请记住。
问候!