清理 $_POST 和 $_GET 数组输入 OOP
Sanitize $_POST and $_GET array inputs OOP
我从 class 方法中获得了这段代码,我想在将数据传递到数据库之前用它来处理数据。我不确定如何继续,这是因为通常我更喜欢使用 ajax 和非 OOP 控制器来清理各种数据。我不确定是否使用 filter_var_array
或 filter_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;
}
}
?>
您不需要在将数据保存到数据库之前对其进行清理。更多信息在这里
https://security.stackexchange.com/questions/95325/input-sanitization-vs-output-sanitization
我从 class 方法中获得了这段代码,我想在将数据传递到数据库之前用它来处理数据。我不确定如何继续,这是因为通常我更喜欢使用 ajax 和非 OOP 控制器来清理各种数据。我不确定是否使用 filter_var_array
或 filter_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;
}
}
?>
您不需要在将数据保存到数据库之前对其进行清理。更多信息在这里 https://security.stackexchange.com/questions/95325/input-sanitization-vs-output-sanitization