Ja se koriste kako bi dobili toliko neželjene pošte u moj spremnik svakodnevnom da mi je više vremena provodite obriše onda sam dodao novog sadržaja, održavanje web lokacije, ili s početkom nove stranice kombinaciji (tipična priča desno). Neki od neželjenih sadržaja Vaše web lokacije ne preventable, ili, što je preventable, ali po cijenu upotrebljivost i / ili dobre informacije dobivanje zatečen u "loše stvari" kao dobro.
Nema sumnje, ako ste ozbiljni o web razvoju idete na stvaranje i interakcije s obrascima na regularnoj osnovi. Pogotovo sa ovim novim web 2.0 stav svaki ima ... điha talentovana osoba, što je to?
CAPTCHA
CAPTCHA je broj jedan način većina ljudi koriste kako bi se spriječila neželjena pošta danas. Što je to?
"A CAPTCHA izazove je odgovor test se koristi na računalima kako biste provjerili je li korisnik ljudskih. Zajedničke vrste CAPTCHA koji se koristi na web stranice potrebno je da posjetitelj upišite slova i brojeve od iskrivljene slike. Ova metoda se temelji na činjenici da je teško za računala na ekstrakt tekst iz slike, dok je vrlo lako za ljude. "- Captchacreator.com
Here'sa nekoliko resursa za skripte pa ćete moći provoditi funkcionalnost da se u vlastite obrasce:
Escape podataka - SQL spriječiti davanja injekcija
Capcha je usless ako si ti ostavljanja oblik nezaštićeni od napada. Ne zaboravite da filtra post žice sa addslashes () ili mysql_real_escape_string ().
Također pogledajte te funkcije i za druge slične vrste provjera koje bi mogle biti korisne:
- htmlspecialchars () - Escapes sljedeće znakove: &,',",>,< ... to je znak za struju, Quote jednokrevetna, dvokrevetna citat, manje od, i veći od simbola.
- strip_tags () - traka iz svih HTML i PHP koda s obzirom na niz.
- htmlentities () - pretvara sve znakove njihove HTML entiteta ekvivalent (ovo je više uhvatiti sve verziju htmlspecialchars).
- urlencode () - kodira URL proći žice na GET metoda. Kao što sam spomenuo, ne koriste DOBITI s oblicima. Ovo je korisno ako ste u prolazu korisnik varijable za unos drugih razloga.
Podsjećamo, nakon što pretvorite podataka kao što je ovaj jednom od navedenih funkcija, možete poništiti za čitljivost i izlaz pomoću obrnutog svojih funkcija. Urlencode () za primjer ima urldecode () kako bi poništili svoje akcije tako da možete početi koristiti kao niz ti bi prije šifrirati.
Provjerite zahtjev metoda
Baciti jedan ako izjavi oko Vaš postojeći oblik procesor koji provjerava da li se podaci dolaze iz globals post varijable. Ako ne, onda korisnik nema pristupa Vašem obrascu na način na koji ste osmišljen je da se koristi.
-
<?php -
if ( $_SERVER [ ‘REQUEST_METHOD’ ] == ‘POST’ ) { -
//typical form processes -
} else { -
echo "The form can not be used like that" ; -
} -
?> - Preuzmi ovaj kod: 0305spamrequestmethod.txt
Promijenite to DOBITI ako se u tome što umjesto. Međutim, ja bih visoko preporučiti vam da nikada ne koristiti metode kao što je više nepouzdan.
Provjerite zahtjev izvor
Vi bi također trebali provjeriti da li je zahtjev iz vlastitog servera. To je vrlo uobičajena metoda oblik zlostavljanja koje ne znači da ćete biti primanja neželjenih poruka. Ako poslužitelj postaje puno bounced e-poštu na svoje zadane e-pošte koju svibanj imati nekoga abusing vaših stranica na ovaj način.
-
<?php -
$source = $_SERVER [ ‘HTTP_HOST’ ] ; -
//or if you want to detect just the domain you can use a regular expression to filter it. -
$source = ereg_replace ( "^(www.)?([^.] ).[^.] $" , " \\ 2" , $_SERVER [ ‘HTTP_HOST’ ] ) ; -
if ( $source !== "robmalon.com" ) { -
echo "you are illegally accessing this script" ; -
} else { -
//typical form processes -
} -
//The referrer should also be from your own domain…Likewise, if there is no referral then the user obviously isnt using your form correctly (so we dont have to check for that). -
//Note: stristr() searches for the first occurrence of a string inside another string. -
if ( stristr ( getenv ( "HTTP_REFERER" ) , $source ) ) { -
//typical form processes -
} else { -
echo "you are illegally accessing this script" ; -
} -
?> - Preuzmi ovaj kod: 0305spamhostsource.txt
Korištenje Regularni izraz za provjeru ispravnosti podataka
Ja bih da provjerite podatke koristeći preg_match (ili bilo koju od regularnih izraza funkcija). Ova metoda ubija velike ptice s jednim kamenom. Zašto pisati odvojene funkcije za provjeru je li niz je prazna, a zatim još jedan ako to dopušta broj, a drugi ako ga omogućuje alfa znakova, a drugi na području određene dužine, a drugi ... ste dobili točki.
if (! preg_match ("/^[ A-z0-9] (5,15 }$/", $ ime)) $ pogreška .= "<li class=\"errors\"> U polje Ime može sadržavati samo slova i brojeva (bez razmaka) i mogu biti samo do 15 znakova. </ li> ";
U preg_match sam da provjere ime polje sadrži samo alfanumeričke vrijednosti (case insensitive) i mora biti najmanje 5 do 15 znakova. Ako ne zadovoljava specifikaciju odgovarajući tekst koji se dodaje na $ pogreške.
Korištenje "[varijablu] [dot] [izjednačuje] [tekst]" u ovom moda dopušta meni da bi jedan aktivni varijable koje sam dodao da. Ne mogu a zatim provjerite je li $ o pogrešci sadrži sve podatke prije nego što moje skripte ne bilo koji značajan upite. Ako postoje greške možete ih pljuvati po PLIMNI $ pogrešku i zatražiti od korisnika da ispravite ih. I onda koristiti CSS u stilu moje pogreške koje možete vidjeti sa klase = \ "greške \".
Redovita defiantly izrazi imaju krivulja učenja na njima, ali oni su jedan od najboljih alata koji mogu pomoći pojednostaviti svoj život u različitim situacijama. Ja ću ići u više detalja o njima dolje na cesti, ali za sada vam svibanj želite kupiti knjigu ili napraviti nešto Googling.
Non-tehničke rekapitulacija
-Provodi CAPTCHA skripta.
-Escape slashes (i drugim lošeg znakova).
-Provjeriti da li se podaci koji dolaze na svoj oblik koristeći ispravan način.
-Provjeriti da li je zahtjev iz vlastitog servera.
-Provjerite podatke pomoću regularnih izraza.
Ovo je samo napojnica u santa leda za ono što ja mogu reći o neželjena pošta. Thats zašto sam odlučio napraviti mini-serija od toga. Tijekom narednih nekoliko tjedana bit ću vam donosi detaljnije načine sam se bave spam. Komentar ispod ili e-pošta mene o vlastitu neželjene pošte preventivnih metoda. Ako je to novi ili jedinstveni tehnika ću ga objaviti u budućnost bloga, uz link nazad na svoj blog. Samo napiši u komentare ispod i uključite svoj URL u polje web stranice.





































Ona se dogodila upravo za mene ... ako postavljate one izvještaje s umrijeti () izjava može biti jednostavnije za brz i prljavi način. Koji siguran sam da većina od vas barem za sada bi se žele quickfix samo bacanje rezervirati Imajte na umu da ... nešto poput ovoga:
if ($ _SERVER [ 'REQUEST_METHOD']! == 'POST') (umrijeti ( "U formu se ne mogu koristiti kao da je");)
Možete staviti da negdje na početku skriptu za nju stupiti na snagu bez brige o postojećim kôd previše.