清理$ _POST和$ _GET数组输入OOP

时间:2019-03-31 09:52:36

标签: php sanitization

我从一个类方法中获得了此代码,该方法要在将数据传递给数据库之前用于处理数据。我不确定如何进行此操作,因为通常我更喜欢使用ajax和非OOP控制器来清理各种数据。我不确定是否使用filter_var_arrayfilter_input_array来完成此任务。如果有人对这项任务有任何建议,我将不胜感激。

这是我的代码示例:

<?php

class UserRegistration{

  public function registration($data = null){
    echo $this->view->registrationForm();

    if( isset($_POST['register']) ){
      $data = [
        $_POST['username'],
        $_POST['email'],
        password_hash($_POST['password'], PASSWORD_BCRYPT, ['cost'=>11])
      ];

      if( $this->sanitizeData($data) ){
        echo $this->view->registrationSuccess();
      }
    }

  }

  private function sanitizeData(array $data){
    $args = ['username'=> FILTER_SANITIZE_STRING, 'email'=> FILTER_SANITIZE_EMAIL, 'password'=> FILTER_SANITIZE_STRING ];
    $sanitized_data = filter_var_array($data, $args);
    return $sanitized_data;
  }

}
?>

1 个答案:

答案 0 :(得分:0)

在将数据保存到数据库之前不需要清理数据。更多信息在这里 https://security.stackexchange.com/questions/95325/input-sanitization-vs-output-sanitization