Последствия неиспользования проверки на стороне сервера?

Каковы последствия отсутствия проверки простой формы электронной почты на сервере.

Имейте в виду, что:

  • выполняется проверка javascript
  • нет рассматриваемой базы данных, это простая форма электронной почты

PHP-код, который я хотел бы использовать, следующий:

<?php
    $post_data = filter_input_array( INPUT_POST, FILTER_SANITIZE_SPECIAL_CHARS );

    $full_name = $post_data["full_name"];
    $email_address = $post_data["email_address"];
    $gender = $post_data["gender"];
    $message = $post_data["message"];

    $formcontent = "Full Name: $full_name \nEmail Address: $email_address \nGender: $gender \nMessage: $message \n";
    $formcontent = wordwrap($formcontent, 70, "\n", true);

    $recipient = "myemail@address.com"; $subject = "Contact Form"; $mailheader = "From: $email_address \r\n";

    mail($recipient, $subject, $formcontent, $mailheader);

    echo 'Thank You! - <a href="#"> Return Home</a>'; 
?>

Решит ли простая капча проблему безопасности?

ОБНОВЛЕНИЕ:

Несколько вопросов, на которые я действительно хотел бы получить ответы: Если меня не беспокоит отправка недействительных данных, каков абсолютный минимум, который я могу сделать для повышения безопасности. В основном избегайте бедствий.

Я, наверное, должен упомянуть, что этот код генерируется в генераторе форм, и я хотел бы, чтобы мои пользователи не подвергались атаке. Спам можно отсортировать, добавив Captcha.

ОБНОВЛЕНИЕ: Каков наихудший сценарий?

ОБНОВЛЕНИЕ: Спасибо за все ответы!

Я планирую сделать пару вещей:

  • добавить это, как упомянул Алекс: filter_var ("$ post_data ['email_address']", FILTER_VALIDATE_EMAIL);

  • добавить простую капчу

Если бы я добавил простую проверку на стороне сервера, что мне следует делать? Не может ли пользователь по-прежнему отправлять недействительные данные, даже если я проверяю их?

Кроме того, остановит ли это действие спам?

9
задан kht 7 October 2011 в 16:18
поделиться