【问题标题】:CakePHP - Escape (htmlspecialchars) not working for FormHelperCakePHP - Escape (htmlspecialchars) 不适用于 FormHelper
【发布时间】:2023-04-04 18:37:01
【问题描述】:

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

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

然后在字段中输入 & 和 ' 例如并点击保存。这些特殊字符无需任何转义即可保存到数据库中。如果没有将选项转义设置为 true,也会发生这种情况。所以我的问题如下。

CakePHP 的设计是否真的是让您在使用 FormHelper 的选项保存之前不应该也不能够转义表单字段?还是我做错了什么?

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    你做错了,你应该转义所有类型的输出,使用 h() 函数,这是 htmlspecialchars() 的快捷方式。核心助手,如 Html::link() 会自动转义。

    另见How to escape output in PHP

    【讨论】:

    • 但问题是关于 FormHelper 是否像 HtmlHelper 转义输出一样转义输入。我认为答案是否定的,但不确定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-01
    • 1970-01-01
    相关资源
    最近更新 更多