【问题标题】:TinyMCE security question: How do you prevent malicious input?TinyMCE 安全问题:如何防止恶意输入?
【发布时间】:2011-03-04 04:50:16
【问题描述】:

如何防止 TinyMCE 等所见即所得编辑器中的恶意输入?

我有一个系统,用户不是“精通技术”(所以没有 WMD),需要一个富文本编辑器将其内容发布到数据库中。

我担心脚本攻击和恶意输入代码。

【问题讨论】:

    标签: php javascript security codeigniter tinymce


    【解决方案1】:

    如果您只想要安全的 html,那么您应该使用 HTML Purifier。如果你想防止 XSS 并阻止所有 html,那么你应该使用$var=htmlspcialchars($var,ENT_QUOTES);

    【讨论】:

    • +1 用于 HTML 净化器。效果非常好,让您可以自定义您想要的和您想要的,而不是在单个标签甚至单个属性的级别
    【解决方案2】:

    您无法阻止来自客户端的输入。您可以添加一些东西来妨碍(或尝试),但提交恶意代码总是微不足道的。您需要在 PHP 中进行清理。

    总是总是在显示用户提交的内容之前对其进行转义(htmlentities通常会为您处理这些问题)。

    如果您希望能够提交 HTML(正如您所说的希望所见即所得),那么您需要将已提交的 HTML 列入白名单。当我说白名单时,我指的是标签名称和属性。

    我对 CodeIgniter 不太熟悉,但我确实找到了 this,它看起来可以满足您的需求...

    【讨论】:

      【解决方案3】:

      【讨论】:

      • javascript 可以被攻击者忽略,这不会阻止恶意输入。
      • ***NEVER***

        依赖客户端验证
      • 客户端验证很有用,如果使用得当可以增强用户体验和可用性,但它必须始终伴随着服务器端验证。当我懒惰时,我总是从服务器端验证开始,然后在客户端上执行相同的检查。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2019-02-01
      • 2020-01-19
      • 1970-01-01
      • 2015-05-31
      • 2017-12-09
      • 2021-05-01
      相关资源
      最近更新 更多