保护PHP电子邮件表单不被注入?

保护PHP电子邮件表单不被注入?,php,security,code-injection,Php,Security,Code Injection,我听说PHP表单被滥用来发送表单应该发送给的人的电子邮件。这是一个实际问题吗?如果是,如何解决?这类似于防止SQL注入吗?如果输入未正确过滤,则任何表单都有漏洞。不管它是电子邮件表单、注册表单,还是PHP支持 电子邮件形式,考虑PHP的正确消毒电子邮件。 一个好的经验法则是记住FIFO:过滤输入,转义输出 超全局应该被认为是肮脏的,需要过滤(输入)。输出转义取决于上下文:向某人发送电子邮件、插入数据库、以HTML呈现——所有这些都需要不同的输出过滤技术。您所说的是安全漏洞。例如,如果像以下代码示

我听说PHP表单被滥用来发送表单应该发送给的人的电子邮件。这是一个实际问题吗?如果是,如何解决?这类似于防止SQL注入吗?

如果输入未正确过滤,则任何表单都有漏洞。不管它是电子邮件表单、注册表单,还是PHP支持

电子邮件形式,考虑PHP的正确消毒电子邮件。

一个好的经验法则是记住FIFO:过滤输入,转义输出

超全局应该被认为是肮脏的,需要过滤(输入)。输出转义取决于上下文:向某人发送电子邮件、插入数据库、以HTML呈现——所有这些都需要不同的输出过滤技术。

您所说的是安全漏洞。例如,如果像以下代码示例中那样将自定义头传递给
mail()
函数,则易受攻击:

<?php
$additional_headers = "Reply-To: {$_GET['user_email']}";
mail($to, $subject, $message, $additional_headers);
?>

挑剔,但是
FIFO:如何过滤输入,转义输出。
是否应该是FIEO
<?php
//$_GET['user_email'] = "me@example.net";// this is what you expect
// this is what you're getting actually
$_GET['user_email'] = "me@example.net\r\nBcc: someone@example.net, ...";
?>