繁体   English   中英

何时使用 htmlspecialchars() function?

[英]when to use htmlspecialchars() function?

嗨,我想知道什么时候使用 htmlspecialchars() 合适。 是在将数据插入数据库之前还是从数据库中检索它们时?

您应该只在将数据回显到 HTML 时调用此方法。

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

您可以使用htmlspecialchars每次输出内容中的HTML,所以它interperted的内容,而不是HTML。

如果您允许将内容作为 HTML 处理,那么您至少为漏洞打开了大门,最坏的情况是全面的 XSS 黑客攻击。

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

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

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

什么是渲染? 渲染是 HTML 转换时

<b>Hello</b>

像这样大胆你好 那是渲染。

那么...什么时候使用 htmlspecialchars() 函数?

无论您想在何处呈现 HTML 内容。 例如,如果您使用 JQuery 并执行以下操作:

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

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

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

<b>Hello</b>

你必须把:

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

这样,Hello 将永远不会被呈现。

如果您想将消息(由用户编写)加载到文本框、文本区域等中……您必须输入:

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

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

那会显示

 <b>Hello</b>

在Textbox里面没有问题。

结论:

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

问候!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM