Veilige mailformulieren

De meeste websites op ulyssis gebruiken PHP om hun website wat dynamischer te maken. PHP biedt een zeer handige functie om mails te sturen.

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Vele scriptjes gebruiken direct de inhoud die ze binnen krijgen via een formulier. Dit laat spammers toe om via een truukje je webformulier te misbruiken om vele duizenden mails via de ulyssis webserver te versturen.

De mail() functie laat je alleen toe om rechtstreeks de ontvanger, onderwerp en het bericht op te geven. Vele scripts laten je ook toe om een afzender op te geven. De mail functie laat dit niet direct toe en een gebruiker zal dan meestal gewoon "From: $from" mee geven als headers parameter.

Spammer proberen dan in from "From: een onderwerp
CC: foo@bar.com" mee te geven. Op deze manier zal de mail ook naar

gaan. Dit is simpel op te lossen door de inhoud van het From veld te controleren op linefeeds (
).

De veiligste manier om mails te sturen via php is door niet rechtstreeks de mail() functie te gebruiken maar de pear mail package. Dit is een set van klassen die alle input controleren voordat de mail verzonden wordt.

Het is niet mogelijk voor ulyssis om alle mailscripts van gebruikers te controleren daarom hebben we de mail functie aangepast om meer tests te doen op de mail input. Alle mails met een linefeed in de to of subject parameter worden geweigerd, de mail functie zal false terug geven. Ook alle mails met to, cc of bcc in de headers parameter worden geweigerd. De mail functie zal dan ook false terug geven. Bij deze errors zal de mail functie ook een Warning genereren.