0

出于安全目的,我想从$this->request->data数组中过滤所有不允许的字段。

例如我的$this->request->data样子是这样的:

array(
    'User' => array(
        'password' => '*****',
        'email' => 'asd@asdasd.de'
    )
)

我想将此过滤器应用于上面的数组:

array(
    'User' => array(
        0 => 'password',
        1 => 'email'
    )
)

因此,所有不在 filter-Array 中的 post-data 字段都将被取消设置。

4

2 回答 2

0

我能看到这有意义的唯一原因是在您的注册/登录操作期间,失效会导致密码以某种方式再次输出。

在那里,您只需将其设置为空,然后再将其传递给视图:

if ($this->Auth->login()) {
    // flash message
    return $this->redirect($this->Auth->redirectUrl());
}
$this->request->data['User']['password'] = '';

有关示例,请参见https://github.com/dereuromark/cakefest/blob/master/Controller/AccountController.php#L26 。

于 2013-08-15T19:51:00.203 回答
0

只需使用SecurityComponent即可。它会自动验证表单是否有效(使用哈希)并防止其他一些攻击。

如果有一个字段被注入到表单中,Security 组件将把请求黑洞化。本书的这一部分告诉你它是如何工作的。基本上它只是添加组件,你就完成了。但我真的建议阅读有关它的书,以了解它在防止攻击方面的作用。

于 2013-08-15T20:47:11.117 回答