Hallo,

Ik heb een contact formulier met een eenvoudige som-captcha (5+6=) waarbij de cijfers random zijn, op basis van mt_rand(). De uitkomst vd som zit ook als verborgen (hidden) veld in hetzelfde formulier, zodat mijn script kan vergelijken of bezoeker de juiste uitkomst heeft ingevuld. Uiteraard heb ik deze waarde gecodeerd erin staan, middels base64_encode(). Werkt prima.

Echter werd ik erop gewezen dat kwaadwillenden dit eenvoudig kunnen omzeilen, door de HTTP request te onderscheppen nadat op verzenden is gedrukt. Deze request bevat (oa) de ingetypte uitkomst én de gecodeerde uitkomst, en als die overeenkomen kan deze kwaadwillende eindeloos formulier inzendingen doen.

Hoe is dit op te lossen? Ik zou ipv een verborgen veld een sessie kunnen starten, maar is er ook een andere (eenvoudige) oplossing?

Groeten, Guido
Eens met "je zou https moeten gebruiken"

Maar als je een plugin voor een website maakt, dan kun je niet dergelijke zaken afdwingen. Die liggen op een hoger niveau. Als de gebruiker van de plugin zijn redenen heeft om de site niet op httpS te laten draaien (is ontwikkel-versie, testversie etc) dan is het niet aan een plugin om dat te overrulen.

Je zou kunnen zeggen dat je in je plugin dit probeert te detekteren en dan een melding te geven. (of misschien zelfs niet te werken). Maar als het niet om een duidelijk geval gaat als betalingsmodule, of medische gevens only, dan zou ik het in een plugin niet blokken.

Anno 2023 denk ik dat je er gewoon vanuit mag (en moet!) gaan, en als voorwaarde mag stellen, dat een website (en dus ook plugin) over https loopt.

Als aanbieder van een plugin wil je zorgen voor een veilige / beveiligde werking en https is daar een voorwaarde voor. Sowieso, als je een contactformulier onbeveiligd wil verzenden, loop je achter de feiten aan.

Kortom, https is dus een vereiste om jouw plugin veilig te laten werken. De verantwoordelijkheid om die veiligheid te waarborgen, ligt bij jou als developer.
Zorg er dus voor dat je zelf je eigen vertaling regelt. EEn zorg er voor dat je dan vlaggetjes bovenaan je site heb waarmee je bezoeker kan omschakelen naar de andere taal.
@Ariën ... ik denk dat je in het onjuiste draadje reageert :-)

Reageren