CakePHP - Escape(htmlspecialchars)不适用于FormHelper

时间:2012-10-31 23:30:03

标签: cakephp

我的印象是FormHelper不仅自动保护我免受SQL注入,而且默认情况下还会转义HtmlHelper之类的特殊字符。但是,当我有:

<?php echo $this->Form->input('field', array('escape' => true)); ?>

然后输入&amp;并且'例如进入该领域并点击保存。这些特殊字符将保存到数据库而不进行任何转义。如果不将选项escape设置为true,也会发生这种情况。所以我的问题如下。

CakePHP的设计是否正确,以便在使用FormHelper的选项保存之前,您不应该也不能逃避表单字段?或者我做错了什么?

1 个答案:

答案 0 :(得分:1)

你做错了,你应该通过使用h()函数(htmlspecialchars()的快捷方式来逃避不通过核心助手的所有输出。核心帮助程序,如Html :: link()将自动转义。

另见How to escape output in PHP