如何在整个应用程序中清理Cakephp3中的用户输入

如何在整个应用程序中清理Cakephp3中的用户输入,cakephp,sanitize,Cakephp,Sanitize,在我们的Cakephp3应用程序中,用户正在输入一些带有撇号的文本,应该将其反斜杠或使用mysql\u real\u escape\u string()来处理,以覆盖站点中抛出的错误 此修复应该在一个uniq位置完成,而不是在所有位置进行 最好的方法是什么? 谢谢我建议你在marshall之前在桌子上放一个stru_替换品 如果所有表都需要这样做,我建议您在Table.php中放在marshall之前,并在其他表中扩展它 应该是这样的: 在table.php中: public function

在我们的Cakephp3应用程序中,用户正在输入一些带有撇号的文本,应该将其反斜杠或使用mysql\u real\u escape\u string()来处理,以覆盖站点中抛出的错误

此修复应该在一个uniq位置完成,而不是在所有位置进行

最好的方法是什么?
谢谢

我建议你在marshall之前在桌子上放一个stru_替换品

如果所有表都需要这样做,我建议您在Table.php中放在marshall之前,并在其他表中扩展它

应该是这样的:

在table.php中:

public function beforeMarshal(Event $event, ArrayObject $data, 
ArrayObject $options)
{
    foreach ($data as $key => $value) {
        if (is_string($value)) {
            $data[$key] = str_replace("'","`",$value);
        }
    }
}
在其他表格中:

class YourTableNameTable extends Table

阅读以下内容:

我建议你在marshall之前在桌子上放一个stru_替换

如果所有表都需要这样做,我建议您在Table.php中放在marshall之前,并在其他表中扩展它

应该是这样的:

在table.php中:

public function beforeMarshal(Event $event, ArrayObject $data, 
ArrayObject $options)
{
    foreach ($data as $key => $value) {
        if (is_string($value)) {
            $data[$key] = str_replace("'","`",$value);
        }
    }
}
在其他表格中:

class YourTableNameTable extends Table

阅读以下内容:

也许我重新发明了轮子,但cake提供了正确保存和显示用户试图“注入”的任何数据的方法


在一般情况下,如果用户希望将其昵称保存为
105;删除表用户
位置。href=“pornhub”
-您应该允许他使用该昵称,如果您使用标准模型,则无法注入任何内容。当您尝试在布局中显示用户数据时,只需使用
h($user->昵称)

也许我重新发明了轮子,但cake提供了正确保存和显示用户尝试“注入”的任何数据的方法


在一般情况下,如果用户希望将其昵称保存为
105;删除表用户
位置。href=“pornhub”
-您应该允许他使用该昵称,如果您使用标准模型,则无法注入任何内容。当您尝试在布局中显示用户数据时,只要使用
h($user->昵称)

正确使用时,查询生成器/编译器将正确绑定数据,以便驱动程序相应地转义数据-通常不需要像这样操作输入。正确使用时,查询生成器/编译器将正确绑定数据,以便驱动程序相应地转义数据-通常不需要像这样操作输入。我希望这是一个好主意。谢谢。这是不必要的,相反:弊大于利。按照上面给出的建议去做,你就很好了。我希望这是个好主意。谢谢。这是不必要的,相反:弊大于利。按照上面给出的建议去做,你很好。你能为你的假设提供参考吗?你能为你的假设提供参考吗?