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

时间:2010-11-01 05:28:28

标签: php mysql input validation

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

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

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

所有用户都只与我私人交谈(机密信息),其中包含richtext。

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

现在,有两件事:

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

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

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

你建议我在我的情况下做什么?

1 个答案:

答案 0 :(得分:1)

  

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

绝对应该,有很多方法可以使用unicde,hex和更多格式绕过这些方法。

  

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

你应该担心Cross-Site Scripting(XSS)。您至少需要使用htmlentities功能。

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

可能的解决方案:

您可以使用HTML Purifier

  

HTML Purifier符合标准   用PHP编写的HTML过滤器库。   HTML Purifier不仅会删除所有内容   恶意代码(俗称为   XSS )经过全面审核,
  它安全但宽容的白名单   还将确保您的文件   符合标准,只有一些东西   可以全面实现   了解W3C的规范。

有用的资源: