Autor | Zpráva | ||
---|---|---|---|
HonzaH2 Profil |
#1 · Zasláno: 25. 1. 2007, 11:45:16
Chtěl bych poprosit o radu. Poskytovatelem webového prostoru mi bylo zablokováno odesílání mailu přes webové rozhraní, protože nějaký spammer zneužíval skript, který slouží k odesílání zpráv prostřednictvím formuláře (klasický kontaktní formulář).
Poskytovatel webového prostoru mi sdělil následující: evidentne se jedna o spatne zabezpeceny skript, skrze ktery se nektery spammer dostal do Vasi prezentace. Je potreba si hlidat predavane hodnoty v promenych, treba regularni vyrazy. Můj skript pro formulář vypadá takto: <? if ($odesli=="ok") { if ($odmail=="") $odmail="neuvedl.mail@XXXXX.cz"; $text = "Jméno: " . $jmeno . " Telefon: " . $telefon . " E-mail: " . $mail . " Text zprávy: " . $zprava; if (mail("XXXX@XXXX.cz","Formular - napiste nam",$text,"From: <$odmail>")) echo "<font color=#C05B1E size=3>Zpráva byla úspěšně odeslána.</font>"; else "<font color=#C05B1E size=3>Zprávu se nepodařilo odeslat</font>"; } ?> Jak je možné ten skript zabezpečit? Příliš zdatný v PHP nejsem a netuším, co znamená pojem "regulérní výrazy", tedy nevím jak to zabezpečit. Předem díky Honza |
||
Pavel Strejček Profil |
#2 · Zasláno: 25. 1. 2007, 15:58:59 · Upravil/a: Pavel Strejček
Ne "regulérní", ale regulární výrazy. Jde to i bez nich. Hlavičky e-mailu se dají jednoduše podvrhnout. Více informací třeba zde http://php.vrana.cz/e-mailovy-formular.php. Je třeba hlídat, aby v údajích, které zadává uživatel se nemohly objevit hlavičky e-mailu. Například je možné odstranit všechny znaky pro nový řádek "\r" a "\n" ze všeho kromě body mailu.
Pro regulární výrazy hledej v manuálu preg_replace(). |
||
HonzaH2 Profil |
#3 · Zasláno: 25. 1. 2007, 16:28:42
to: Pavel Strejček
Děkuji za radu a za odkaz, velmi mi to pomohlo. To je trašný, jak snadno lze ten kontaktní formulář zneužít. Jdu s tím něco udělat :-) |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0