Cakephp 2.5并剥离HTML

时间:2014-09-18 15:07:13

标签: html validation cakephp cakephp-2.5

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

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

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

所以我的问题是这个。我的初始假设是不正确的,而且默认情况下cake不会处理这个问题,我们需要自己明确地做这个。或者是否有可能将其关闭,也许这就是在这里发生的事情,我会在哪里找到这个?做了一些搜索,包括蛋糕网站,但继续参考在2.3

中弃用的蛋糕的Sanitized Utility

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

2 个答案:

答案 0 :(得分: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

如果不知道表格的性质,你正在消毒,我不可能推荐一个解决方案。最安全的方法是去除除标点符号之外的所有非字母数字字符。

答案 1 :(得分:0)

根据您需要的卫生水平,请查看HtmlPurifier。直接使用lib或this plugin用于CakePHP。它也会照顾XSS。

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