htmlspecialchars() 应该用于输入信息还是输出之前?

发布于 2024-12-02 06:35:11 字数 272 浏览 1 评论 0原文

我获取 $_POST 信息并将其存储在数据库中,稍后查询并将此信息打印给用户。我应该在插入此信息之前使用 htmlspecialchars() 还是在查询它之后然后输出它?

此外,我需要用户能够使用引号和其他日常特殊字符。我知道我可以使用标志 ENT_NOQUOTES 但感觉如果我这样做就会留下安全漏洞。

我的网站允许 Bbcode,我希望用户能够使用日常字符而不必看到“amp;lt;<?>&”。

对我有耐心<---鼓励菜鸟! 谢谢:D

I take $_POST information and store it in a DB and later on query and print this information to the user. Should I use htmlspecialchars() before inserting this info or after I query it before I output it?

In addition I need the ability for users to have the ability to use quotes and other everyday special chars. I know I can use the flag ENT_NOQUOTES but it feels like if I do that it leaves security holes.

My site allows Bbcode and I want users to be able to use everyday characters without having to see "amp;lt;<?>&".

Patience with me <--- noob is encouraged!
Thanks :D

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

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

发布评论

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

评论(2

从﹋此江山别 2024-12-09 06:35:11

我应该在插入此信息之前使用 htmlspecialchars() 还是在查询它之后再输出它?

在插入目标代码之前转义数据。即在输出之前。

这意味着您将保留数据的原始形式用于其他目的(例如输出给用户进行编辑,包括在电子邮件中、生成 PDF、搜索等)

此外,我需要用户能够使用引号和其他日常特殊字符。我知道我可以使用标志 ENT_NOQUOTES 但感觉如果我这样做就会留下安全漏洞。

htmlspecialchars() 会将输入数据中的引号转换为 HTML。所以你不需要做任何特别的事情。

我的网站允许 Bbcode

那么你需要有一个合适的 BBCode 解析器。

Should I use htmlspecialchars() before inserting this info or after I query it before I output it?

Escape data for the target code just before you insert it. i.e. Just before you output it.

This means that you will keep the data in its original form for other purposes (e.g. outputting to the user for editing, including in an email, generating a PDF, searching, etc)

In addition I need the ability for users to have the ability to use quotes and other everyday special chars. I know I can use the flag ENT_NOQUOTES but it feels like if I do that it leaves security holes.

htmlspecialchars() will convert quotes in the inputted data into HTML. So you don't need to do anything special.

My site allows Bbcode

Then you need to have a proper BBCode parser.

情栀口红 2024-12-09 06:35:11

在输出之前使用 htmlspecialchars() 以避免 XSS。并且数据库应该更好地保存用户的原始输入。

htmlspecialchars() is used before output to avoid XSS. And the database should better save the user's raw input.

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