De laatste tijd gebeurt het steeds vaker dat er misbruik wordt gemaakt van standaard contactformulieren. Een voorbeeldje:
Een contactformulier bestaat uit de velden:
Naam (1 regel)
Emailadres (1 regel)
Onderwerp (1 regel)
Bericht (meerdere regels).
Het veld "Onderwerp" komt in de subject te staan. Een voorbeeld van een PHP-commando om de email van dit formulier te verzenden kan er zo uit zien:
mail("info@mijnwebsite.nl", $onderwerp, $bericht);
De headers van deze email komen er dan zo uit te zien:
To: info@mijnwebsite.nl
Subject: $onderwerp
Met form injection spam wordt het onderwerp als volgt ingevoerd:
onderwerp=Dit is het onderwerp\nbcc: test@test.nl
De headers komen er dan zo uit te zien:
To: info@mijnwebsite.nl
Subject: Dit is het onderwerp
bcc: test@test.nl
Deze email wordt dan niet alleen naar info@mijnwebsite.nl gestuurd, maar ook naar test@test.nl en eventueel meerdere adressen die hierachter ingevuld worden.
We willen iedereen dan ook vragen om hier goed op te controleren. Een goed plan om dit tegen te gaan is te controleren op de tekens \n en \r wanneer het veld niet mag bestaan uit meer dan 1 regel, en $_POST['onderwerp'] te gebruiken in plaats van $onderwerp.
Voorbeeld:
$onderwerp = str_replace( "\r\n", '', $_POST['onderwerp'] );