Закрепление скрипта контактной формы

Здравствуйте! Мне просто интересно, насколько безопасен этот скрипт contactform, который я только что создал? Мой учитель давно ерзал у меня, когда я сделал свои контакты.

if($_SERVER['REQUEST_METHOD'] === 'POST'){ $myemail = "email@adress.com"; $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $subject = $_POST['subject']; $comments = $_POST['comments']; if($name == 0 || !preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email) || !preg_match("/^\d{2}(-\d{3}){2}(\d{2})?$/", $phone) || $subject == 0 || $comments == 0){ $error_message = 'Something was written wrong..'; } else { $message = "Hello! Your contact form has been submitted by: Name: $name E-mail: $email Phone: $phone Comments: $comments End of message"; mail($myemail, $subject, $message); $error_message = 'Your message was sent!'; } } 

Любые предложения по обеспечению безопасности?

PS Обеспечение контактной формы и защита формы контакта php – это и для WordPress, и для этого не для меня.

Solutions Collecting From Web of "Закрепление скрипта контактной формы"

Вы можете использовать функцию для проверки таких записей, как:

 function check_input($data) { $data = trim($data); $data = stripslashes($data); $data = htmlspecialchars($data); return $data; } 

А также

  $name    =   check_input($_POST['name']);  $email   =   check_input($_POST['email']);  $phone   =   check_input($_POST['phone']);  $subject  =   check_input($_POST['subject']);  $comments =   check_input($_POST['comments']); 

А также

  if ($name && $email && $phone && $subject && $comments) { Send contact form... } 

и, конечно, вы можете добавить captcha, чтобы сделать его более безопасным.

В вашем коде нет ничего небезопасного, кроме проверки достоверности данных. Вы просто собираете данные формы и отправляете их. поэтому единственная «небезопасность» заключается в том, что вы можете легко спамить эту форму, если не используется какой-либо код. На данный момент я не уверен, но может быть возможно обмануть mail (), чтобы добавить больше получателей с созданной переменной $ subject, так что это будет экономить, чтобы обеспечить ее oneliner и удалить любые CRLF