Spam via aanroepen php mail script
//zorgen dat script niet van buiten de website wordt aangeroepen
$vorige_url = getenv("HTTP_REFERER");
IF ($vorige_url != "https://www.granietshop.nl/werkbladen/graniet/prijzen.htm"){
echo "Niet toegestaan, stuur ons een e-mail";
exit;}
Door een upgrade van de PHP versie werkte dit niet meer dus heb ik het bovenstaande deel uit het script gehaald, gevolg, het lijkt erop dat het script van elders aangeroepen wordt, ik krijg mails met oningevulde formulieren.
Hoe kan ik ervoor zorgen dat het script weer alleen vanuit de eigen website aangeroepen kan worden?
nog wel?
(overiges kun je als "robot" die url ook zelf meesturen: dan is de check verder nutteloos)
$_SERVER['HTTP_REFERER'] is overigens eenvoudig te faken.
Of als all-in-one oplossing kiezen voor ReCaptcha 3 Invisible. Deze heeft geen rare puzzels of checkboxen, werkt op zichtbaar logo na vrijwel onzichtbaar, waarna die op de achtergrond een waarde meegeeft. Ook zit hier CSRF-beveiliging in.
Gewijzigd op 27/10/2022 10:03:34 door - Ariën -
zou ik niet gebruiken. Je kan beter een sessie variabele zetten. Overigens werkt HTTP_REFERER niet over HTTPS..
Pagina 1:
pagina 2:
En als je wilt dat ze niet steeds refreshen dan zou ik doen in de if else.
Pagina 1:
pagina 2:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
if(isset($_SESSION['pagina1'] && $_SESSION['pagina1'])
{
//PAGINA 1 IS BEZOCHT
}
else
{
//PAGINA 1 IS NIET BEZOCHT
}
{
//PAGINA 1 IS BEZOCHT
}
else
{
//PAGINA 1 IS NIET BEZOCHT
}
En als je wilt dat ze niet steeds refreshen dan zou ik doen in de if else.
Gewijzigd op 27/10/2022 10:09:06 door Lucas Kindt
Toen dat deel nog werkte had ik geen last van lege formulieren die gemaild werden, het lijkt erop dat het gewoon grapjassen zijn, niet geautomatiseerd (dan zou ik ook meer "spam" verwachten)
De gegevens worden op een html pagina ingevuld, de spam komt echter van het mail-to script (alleen de veld namen, onderwerp e.d.)
Ik begreep al dat "http_referer" niet meer de juiste manier was om te werken maar de site is al vanaf 2018 in de basis niet meer gewijzigd. De site moet eigenlijk helemaal op de schop maar gezien de afhankelijkheid van de site durven we dat niet aan.
Ik ga kijken of ik met de session variabele wat kan doen.
Gaat het om buitenlandse spam?
Arën, het zijn lege formulieren, dus totaal geen gegevens. Ik zou dus ook niet weten waar de spam vandaan komt?
Check of de gegevens ingevuld/geldig zijn voordat ze het kunnen versturen.
Misschien moet ik alle spammers maar even in mijn firewall van mijn server gooien :P
Maar als je een contactformulier hebt. Zorg dat je ook geen header-injection toestaat. Contactformulieren zijn ook de bron van spamruns...
Gewijzigd op 27/10/2022 10:52:31 door - Ariën -