【问题标题】:Cakephp 2.5 and stripping HTMLCakephp 2.5 和剥离 HTML
【发布时间】:2014-09-18 15:07:13
【问题描述】:

我正在使用最近从 1.1 升级到 2.5 的应用。

我一直认为带有文本框和文本区域的本机 cakephp 行为是从输入中去除 html 标签。

最近我们发现这个应用程序没有发生这种情况。

所以我的问题是这样的。我最初的假设是否不正确,并且 cake 默认情况下不处理这个问题,我们需要自己明确地这样做。或者是否可以关闭它,也许这就是这里发生的事情,我在哪里可以找到这个?做了一些搜索,包括蛋糕网站,但一直被提到在 2.3 中弃用的蛋糕消毒实用程序

非常感谢任何帮助或指导。

【问题讨论】:

标签: html validation cakephp cakephp-2.5


【解决方案1】:

您指的是数据清理

在 CakePHP 1.x 中,它是通过帮助类处理的。

http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Data-Sanitization.html

对于控制器接收到的任何输入,数据清理从来不是自动的或默认的,但是当您更新到 CakePHP 2.5 时,清理助手已被删除。所以你在迁移到 Cake 2.5 的过程中一定是在不知不觉中删除了它

http://book.cakephp.org/2.0/en/core-utility-libraries/sanitize.html

它被删除的原因是它不安全并且很容易被黑客绕过。 CakePHP 1.x 网站容易受到 XSS 攻击。

http://en.wikipedia.org/wiki/Cross-site_scripting

在您可以安全地执行表单数据清理之前。您应该知道黑客绕过输入过滤来注入不需要的数据是多么容易。

https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

在不知道您要清理的表单的性质的情况下,我无法推荐解决方案。最安全的方法是去掉标点符号以外的所有非字母数字字符。

【讨论】:

    【解决方案2】:

    根据卫生水平,您需要查看HtmlPurifier。直接使用 lib 或 this plugin 用于 CakePHP。它也处理 XSS。

    HtmlPurifier 可以配置为过滤非常具体的 HTML。例如,您可以允许<a>,但不允许除 src 之外的任何其他属性或仅允许 id。

    【讨论】:

      猜你喜欢
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-03
      • 2012-08-23
      • 2012-08-08
      • 1970-01-01
      相关资源
      最近更新 更多