【问题标题】:Rich text and parameterized queries, should I be worried?富文本和参数化查询,我应该担心吗?
【发布时间】:2010-11-01 05:28:27
【问题描述】:

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

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

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

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

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

现在,有两件事:

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

2.)我还有什么需要担心的吗?

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

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

【问题讨论】:

    标签: php mysql input validation


    【解决方案1】:

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

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

    2.)我还有什么需要担心的吗?

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

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

    可能的解决方案:

    你可以使用HTML Purifier:

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

    有用的资源:

    【讨论】:

    • First:你说我应该,但我不知道该怎么做。建议?第二:你说至少使用 htmlentities,你是说它比我能做的更多吗?如果是,那是什么?
    • 我在点击“添加评论”后就看到了。谢谢!现在,这会解决这两个问题吗?还是我天真地认为这就是我需要担心的全部?
    • @Tek:HTML Purifier 会非常小心,希望如此。查看他们的文档以了解更多信息:)
    • 我喜欢你添加“希望”的方式,哈哈。不信任其他人编写的程序?我想这就是为什么很多程序员经常尝试“重新发明”轮子的原因。无论哪种方式,这都超出了我的要求,我相信这将满足并超出我的期望。非常感谢!
    • @Tek:欢迎并很高兴看到你理解程序员的噩梦 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多