Archief - Online mailformulier, wat zijn de gevaren?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

SideShow

Legacy Member
Hallo

Even ter info, wat zijn juist de gevaren van een online mailformulier?
Men kan uw pagina continue requesten met dezelfde post informatie... aldus 'spammen' of mailbomben en dergelijk ... ? Kan dit niet simpel opgelost worden door de referer te controleren? Mijn formulierpagina is niet dezelfde als de mailpagina ....

Ik gebruik swiftmailer, daar worden dus variabelen doorgegeven aan het mailobject, zoals de boodschap zelf. Ik doe momenteel een strip_tags erop.
Zijn er nog dingen die men kan doen? Als spam beveiliging zou ik nog een check doen aan de hand van de tijd van de laatste boodschap (minimum 1 minuut tussen ofzo ...)

Dit is de code die ik gebruik

PHP:
//Load in the files we'll need
require_once "swift/Swift.php";
require_once "swift/Swift/Connection/SMTP.php";

//Start Swift
$swift =& new Swift(new Swift_Connection_SMTP());

//Create the message
$message =& new Swift_Message("Contact via website", strip_tags($_POST["tekst"]));

//Recipients
$recipients =& new Swift_RecipientList();
$recipients->addTo("[email protected]", "blabla");
$recipients->addBcc("[email protected]", "blablabla");

//Now check if Swift actually sends it
if ($swift->send($message, $recipients, $_POST["from"]))
       header("Location: contact.php?sent=yes");
else  header("Location: contact.php?sent=no");

RpR

Legacy Member
voor spam tegen te gaan.
Doe een spamcheck met spamassassin.

Lord Kveldulv

Legacy Member
Ze kunnen in feite alles spoofen, dus ook referrers. Je kan er een captcha opzetten. Of het ip bijhouden en slechts 1 post per uur toelaten al gaan ze u in feite nooit mailbomben. Doel is nog altijd 1 of een paar spam messages er door te krijgen en dan stoppen ze. Je kan het bericht ook laten checken op keywords. Ik denk dat er wel lijsten voorhanden zijn, en zelfs manueel heb je na een paar weken een lijst met woordjes die 90% tegenhoudt. Daarin kan je ook html en bbcode tags zetten.
En misschien nog het efficientste van al, geregeld uw filenames veranderen van de pagina's waar uw forms opstaan. Dan ben je ook weer een paar weken gerust. Hou uw apache logs dan eens int oog. Ze zitten soms nog maanden later de oude pagina te requesten.

En als je echt schrik hebt dat iemand 10 000 requests gaat doen op uw mailform, dus DDoS/mailbomb, installeer dan mod_evasive of zelfs mod_security op uw apache.

adrianhates

Legacy Member
ne captcha is idd nogal het beste dat ge kunt doen
als ge da al doet kunt ge al vrij zeker zijn als ge gene high traffic site hebt..
optioneel is idd filtere op viagra e.d. :)

Xavez

Legacy Member
Om op spam te checken: een field maken en dat verbergen via css. Dan via php checken of het veld wél is ingevuld. Als het is ingevuld gaat het wellicht om een spambot (want die leest CSS meestal niet). Simpel maar doodeffectief bevonden totnogtoe :-).

UnD3RD0G

Legacy Member
Xavez,

dit is wat ik doe op mijn filter,
en geloof mij , die vullen alle mogelijkheden in, bv eerste alleen, dan eerste 2, dan alleen 2de, etc etc...

Ik gebruik de manier die gij zegt, en hoewel het al fameus gedaald is, komt er toch nog wa binnen... gelukkig heb ik een goeie spamfilter op mijn mail en heb ik er dus geen last van

Xavez

Legacy Member
Ja, ik gebruik die techniek eigenlijk in combinatie met een URLcount. In PHP:

Code:
$http = substr_count($message, "http");
$href = substr_count($message, "href");
$url = substr_count($message, "[url");
$spamwordx = substr_count($message, "viagra");
$spamwordy = substr_count($message, "cialis");

En dan counten of er bijvoorbeeld meer dan drie van die ondingen inzitten. Totnogtoe werkt deze techniek behoorlijk goed op contactforms en guestbooks... Laatste half jaar misschien twee spamberichten handmatig moeten verwijderen, dus dat is toch vrij doenbaar. Dat ik werkelijk ook ondergespamd werd heb ik getest door de spam een tijdlang ook naar de database te schrijven met een spamflag. Binnen enkele uren 800 berichten die als spam geflagged waren :p. M.a.w. de techniek is voorlopig althans nog vrij effectief :-).

SideShow

Legacy Member
Mijn site staat nu 10 dagen online, zoals te zien aan mn code zit er momenteel niks op als beveiliging en ik heb nog geen 1 spambericht gekregen. Wel een stuk of 10 goede mails. Ik heb gemiddeld 60 unieke visits per dag en 400 hits. Allerhande bots zijn ook al gepasseerd (staat al volledig op google o.a.)

Kunnen ze met die code de To en Bcc aanpassen? Iets als 'php-injectie'?
Normaal kunnen ze toch nooit die variabele veranderen en zou ik elk spambericht moeten ontvangen, aangezien ik in de Bcc zit ? (de firma mail zit in de To)

Curahee Q

Legacy Member
10 dagen is ook nog niet lang, wacht nog maar een maand of 2.

Eleven

Legacy Member
Xavez zei:
Om op spam te checken: een field maken en dat verbergen via css. Dan via php checken of het veld wél is ingevuld. Als het is ingevuld gaat het wellicht om een spambot (want die leest CSS meestal niet). Simpel maar doodeffectief bevonden totnogtoe :-).

Hier heb ik een aanvullende vraag over.
Ik ben geen voorstander van captcha, aangezien dit de toegankelijkheid echt niet tegoeden komt. Daarom vond ik dit wel een interessante manier om spam tegen te gaan.
Nu is het met HTML mogelijk om een field hidden te maken.
Is dit een goede mannier of kan ik dit beter met CSS doen?
Aangezien spambots ook niet van gisteren zijn kan ik wel aannemen dat zij dit wel doorhebben als er gewoon in HTML staat dat het field hidden is.

Xavez

Legacy Member
Eleven zei:
Hier heb ik een aanvullende vraag over.
Ik ben geen voorstander van captcha, aangezien dit de toegankelijkheid echt niet tegoeden komt. Daarom vond ik dit wel een interessante manier om spam tegen te gaan.
Nu is het met HTML mogelijk om een field hidden te maken.
Is dit een goede mannier of kan ik dit beter met CSS doen?
Aangezien spambots ook niet van gisteren zijn kan ik wel aannemen dat zij dit wel doorhebben als er gewoon in HTML staat dat het field hidden is.

Ik doe het via CSS:

position: absolute;
top: -9999px;
left: -9999px;

En ik geef het ding geen klasse "hidden" mee ofzo, da's gewoon too obvious. Meer iets als "txtURL" ofzo. Niet echt heel semantisch maar wel beter dan een captcha :). Voor blinden en slechtzienden kan je wel best een omschrijving invoeren (label) in de de aard van "laat dit veld blanco om te bewijzen dat je een mens bent" :-).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan