Dúvida com Filter Input
Quando recebo os dados no script php via $_POST eu consigo aplicar os filtros de string e e-mail, por exemplo, usando
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_EMAIL);
$email = filter_var($email, FILTER_VALIDATE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_msg .= '<p class="error">O endereço de email digitado não é válido</p>';
}
Minha dúvida é se é preciso e como posso aplicar filtros e evitar ataques com mysql injection, por exemplo, no script abaixo onde recebo dados usando property_exists():
$data = json_decode(file_get_contents("php://input"));
if(property_exists($data, 'user') || property_exists($data, 'email')){
$u = $data->user;
$e = $data->email;
$insert_stmt = $mysqli->prepare("INSERT INTO users(user, email) VALUES(?,?)");
$insert_stmt->bind_param("ss", $u, $e);
$insert_stmt->execute();
$insert_stmt->close();
$mysqli->close();
$msg = "Cadastro realizado";
$retorno = json_encode($msg);
echo $retorno;
}Discussão (3)
Carregando comentários...