何时使用 htmlspecialchars() 函数?

发布于 2024-10-15 19:02:58 字数 71 浏览 6 评论 0原文

你好 我想知道什么时候是使用 htmlspecialchars() 的合适位置。是在将数据插入数据库之前还是从数据库检索数据时?

Hi
I was wondering when is the appropriate place to use htmlspecialchars(). Is it before inserting data to database or when retrieving them from the database?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

指尖微凉心微凉 2024-10-22 19:02:58

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

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

You should only call this method when echoing the data into HTML.

Don't store escaped HTML in your database; it will just make queries more annoying.
The database should store your actual data, not its HTML representation.

嘿嘿嘿 2024-10-22 19:02:58

每次在 HTML 中输出内容时,您都会使用 htmlspecialchars 每次,因此它会被解释为内容而不是 HTML。

如果您允许将内容视为 HTML,那么您至少会为错误打开大门,而最坏的情况下则可能会导致 XSS 黑客攻击。

You use htmlspecialchars EVERY time you output content within HTML, so it is interperted as content and not HTML.

If you allow content to be treated as HTML, you have just opened the door to bugs at a minimum, and total XSS hacks at worst.

谎言 2024-10-22 19:02:58

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

Save the exact thing that the user enters into the database.
then when displaying it to public, use htmlspecialchars(), so that it offers some xss protection.

审判长 2024-10-22 19:02:58

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

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

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

<b>Hello</b>

为粗体,如 Hello。这就是渲染。

那么...何时使用 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>

毫无问题地显示在文本框内。

结论:

用户在表单等中输入的数据是什么...照常保存数据。
不要使用任何功能。如果用户发送 12345 则按原样保存。不要过滤任何东西。仅当您要向用户显示页面中的数据时才需要进行过滤。您,只有您决定是否要渲染用户编写的内容。 *记住这一点。

问候!

Guide - How to use htmlspecialchars() function in PHP

To begin you have to understand 1 simple concept: Render.

What Render is?
Render is when the HTML transforms

<b>Hello</b>

to bold like this Hello. That's render.

So...When to use the htmlspecialchars() function?

Wherever you want to render HTML contents.
For example, if you are using JQuery and you do this:

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

The div contents will be Hello. It rendered the text into HTML.

If you want to display the message in this way (was wrote by user):

<b>Hello</b>

you have to put:

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

In that way the Hello will never be rendered.

If you want to load the message (as wrote by user) into a textbox, textarea, etc... You have to put:

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

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

That will display

 <b>Hello</b>

Inside the Textbox without problems.

Conclusion:

What ever data the user input into your forms, etc...Save the data as normally.
Do not use any function. If user sent 12345 save as it is. Do not filter nothing. You only have to filter when you are going to display the data in the page to the users. YOU, ONLY YOU decide if you want to render or not what the user wrote. *Remember that.

Regards!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文