安全地从PHP发送电子邮件

时间:2016-01-03 21:39:53

标签: php email

我的网站上有一个页面,用户可以通过提供他们的电子邮件,姓名和消息向我发送消息。在前端(JS),我做了一些基本的验证,确保电子邮件的格式像电子邮件,确保其他框不是空白,然后我通过GET发送给PHP。

现在我意识到人们可以通过向PHP注入恶意代码来做一些非常偷偷摸摸的事情。我应该采取什么预防措施?当我使用MySQL时,我会使用mysqli转义函数来逃避它。我该怎么办?

现在我的脚本:

<?php
    if(!isset($_GET["message"]) || !isset($_GET["name"]) || !isset($_GET["email"])){
        echo "Check all the fields are correctly filled in and try again!";
        die();
    }
    $email = $_GET["email"];
    $message = $_GET["message"];
    $name = $_GET["name"];
    if($email == ""|| $message == "" || $name == ""){
        echo "Check all the fields are correctly filled in and try again!";
        die();
    }

    $message = wordwrap($message, 70);

    mail("email@email.com","A Message From " . $name,$message,"From: $email\n");
    echo "success";
?>

1 个答案:

答案 0 :(得分:0)

一个非常基本的方法是你可以声明一个变量(例如$pattern)并在其中存储正则表达式(如攻击中常用的模式),然后使用preg_match($pattern, $valueFromYourForm)方法查看是否有传递的值与任何这些表达式匹配,然后您可以停止执行。