富文本和参数化查询,我应该担心吗?

发布于 2024-09-29 21:15:34 字数 448 浏览 2 评论 0原文

对于这个特定的项目,我将使用 PHP 5.3 & 带有参数化查询的 MySQLCKE 编辑器

关于我的情况的一些背景:

网站上的用户不会相互交互。

所有用户仅与我进行私人对话(机密信息),其中包含富文本。

我限制了 CKE 编辑器,将用户限制为基本的 html、粗体、图像和其他格式。

现在,有两件事:

1.)我还需要某种形式的验证吗?如果用户尝试以富文本形式输入 html 或 php 或任何其他代码,是否会对我的网站产生任何影响?或者一旦从数据库中回显,它只会以简单文本的形式输出?

2.)还有什么我应该担心的吗?

我还没有开始这个项目,所以我要求在我到达用户输入部分时做好准备。

针对我的情况,您建议我做什么?

For this particular project I will be using PHP 5.3 & MySQL with parameterized queries and CKE Editor.

A little background on what my situation is:

The users on the site don't interact with each other.

All the users have private conversations with me only (confidential information), which contain richtext.

I've limited the CKE editor to limit the user to basic html, bold, images and miscellaneous formatting.

Now, two things:

1.)Do I still need some form of validation? If a user tries to input html or php or any other code in the rich text form, could it have any possible effect on my site? Or will it just be outputted as simple text once it's echo'd from the database?

2.)Is there anything else I should be worried about?

I haven't started on the project yet so I'm asking this to be prepared when I get to the user input part.

What do you recommend I do in my situation?

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

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

发布评论

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

评论(1

舟遥客 2024-10-06 21:15:34

1.)我还需要某种形式的验证吗?如果用户尝试输入
html 或 php 或任何其他代码
富文本形式,可以有吗
对我的网站可能有影响吗?或者会不会
仅作为简单文本输出一次
它是从数据库中回显的吗?

当然你应该这样做,有很多方法可以使用 unicde、十六进制和更多格式来绕过这些方法。

2.)还有什么我应该担心的吗?

您应该担心跨站脚本 (XSS)。您需要在以下位置使用 htmlentities 函数最低限度。

echo htmlentities($text, ENT_QUOTES, "UTF-8");

可能的解决方案:

您可以使用HTML Purifier

HTML Purifier 是一个符合标准的
用 PHP 编写的 HTML 过滤器库。
HTML Purifier 不仅会删除所有
恶意代码(更广为人知的名称是
XSS
)经过彻底审核,
安全但宽容的白名单,它
还将确保您的文件
符合标准,仅此而已
可以通过全面的
了解 W3C 规范。

有用资源:

1.)Do I still need some form of validation? If a user tries to input
html or php or any other code in the
rich text form, could it have any
possible effect on my site? Or will it
just be outputted as simple text once
it's echo'd from the database?

Definitely you should, there are a number of ways to bypass those ways using unicde, hex and more formats.

2.)Is there anything else I should be worried about?

You should be worried about Cross-Site Scripting (XSS). You need to use htmlentities function at the minimum.

echo htmlentities($text, ENT_QUOTES, "UTF-8");

Possible Solution:

You can use HTML Purifier:

HTML Purifier is a standards-compliant
HTML filter library written in PHP.
HTML Purifier will not only remove all
malicious code (better known as
XSS
) with a thoroughly audited,
secure yet permissive whitelist, it
will also make sure your documents are
standards compliant, something only
achievable with a comprehensive
knowledge of W3C's specifications.

Useful Resources:

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