PHP pdo и безопасность для получения данных (вставка) - PullRequest
0 голосов
/ 20 марта 2019

Я делаю сайт с простой формой, где я могу получить некоторые данные для людей, которые хотят зарезервировать стол для викторины. Все отлично работает, но я не знаю много о безопасности для него. После моих собственных исследований я закончил с PDO для моего php-кода, но кто-нибудь знает, хорошо ли это? (все работает, это просто безопасность

ob_start();
include 'connect.php';
$naam = $_POST['naam'];
$email = $_POST['email'];
$personen = $_POST['aantal'];
$telefoonnummer = $_POST['phone'];
$bedrijf = $_POST['bedrijf'];

if($bedrijf != 1){
  $bedrijf = 0;
}
if (empty($naam) || empty($email) || empty($personen) || empty($telefoonnummer)) {
    header("Location: ../form.php?error=emptyfields");
    exit();


} else if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    header("Location: ../form.php?error=invalidmail");
    exit();
}
else if(!is_numeric($telefoonnummer)){
    header("Location: ../form.php?error=invalidphone");
    exit();
}
else{
    $sql = "INSERT INTO aanmelding (naam, email, personen, telefoonnummer, bedrijf) VALUES (:naam, :email, :personen, :telefoonnummer, :bedrijf)";
    $statement = $conn->prepare($sql);

    $statement->execute([
        'naam' => $naam,
        'email' => $email,
        'personen' => $personen,
        'telefoonnummer' => $telefoonnummer,
        'bedrijf' => $bedrijf,
    ]);
    header("Location: ../form.php?succes=aanmelding");
    exit();
}

<?php
$servername = ""; //here is good data for connection
$username = "";//here is good data for connection
$password = "";//here is good data for connection

try {
    $conn = new PDO("mysql:host=$servername;dbname=DB3712239", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}
catch(PDOException $e)
{
    echo "Connection failed: " . $e->getMessage();
}
?>

1 Ответ

0 голосов
/ 20 марта 2019

короче говоря, да PDO и подготовленные заявления должны быть в порядке.Если вы хотите, вы можете провести дальнейшую дезинфекцию с помощью переменных (лучше использовать подход с использованием белого списка для указания разрешенных символов) с некоторыми функциями preg_replace / preg_match / str_replace или, по крайней мере, strip_tags для борьбы с xxs (если вы собираетесьраспечатайте информацию на экране где-нибудь)if(...execute()){////}else{direct to an error page}).но это вовсе не вопрос безопасности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...