I tottuneet saamaan niin paljon roskapostia minun postilaatikkoon jokapäiväistä, että minulla oli menoja enemmän aikaa poistamalla se sitten olin lisäämällä uutta sisältöä, kunnossapito-sivustot, tai aloittaa uusia sivustoja yhdistetty (tyypillinen tarina oikealla). Jotkin sivuston roskapostia ei ole ehkäistävissä, tai se ei ehkäistävissä, mutta hintana käytettävyyttä ja / tai hyvää tietoa juutu, että "huonoja juttuja" samoin.
Epäilemättä, jos olet tosissaan Web-kehitys olet tulee luoda ja vuorovaikutuksessa lomakkeet säännöllisesti. Varsinkin tämän uuden web 2.0 asenne joka on ... jannu Wiz, mitä siitä?
CAPTCHA
CAPTCHA on numero yksi menetelmä useimmat ihmiset käyttävät estää roskapostin tänään. Mikä se on?
"A CAPTCHA on haaste vastaus testi käyttää tietokoneita tarkistaa, jos käyttäjä on ihminen. Yhteinen eräänlainen CAPTCHA, jota käytetään Web-sivustoissa edellyttää, että kävijä kirjoittaa kirjaimet ja numerot vääristyneen kuvan. Tämä menetelmä perustuu siihen, että on vaikea tietokoneet poimia tekstin kuvan, kun se on hyvin helppoa ihmisille. "- Captchacreator.com
Ohessa muutama resurssit käsikirjoituksiin, joten sinun on pystyttävä toteuttamaan toiminnot oman muodoissa:
Escape Data - estää SQL-injektioita
Capcha on usless jos olet joten muodossa suojaamaton hyökkäyksiltä. Muista suodatin post merkkijonon addslashes () tai mysql_real_escape_string ().
Myös katsoa näitä toimintoja muihin vastaaviin luontoissuoritukset tarkastuksia, jotka voivat olla hyödyllisiä:
- htmlspecialchars () - escape seuraavia merkkejä: &,',",>,< ... se on et-merkki, yksi tarjous, lainausmerkki, pienempi kuin ja suurempi kuin symboleja.
- strip_tags () - kaistaleet kaikki HTML-ja PHP-koodi on annettava merkkijono.
- htmlentities () - Muuntaa kaikki merkit niiden HTML-yksiköt vastaavat (tämä on enemmän kiinni kaikki versio htmlspecialchars).
- urlencode () - Koodaa URL siirtää jouset on GET-menetelmällä. Kuten mainitsin, ei saa käyttää GET-muotoon. Tämä on hyödyllinen silloin, kun olet ohimennen käyttäjä syöttää muuttujat muista syistä.
Muista, kun muuntaa tiedot tältä käyttäen jotakin edellä mainituista toiminnoista, voit perua sen luettavuutta ja ulostulon avulla sen kääntää toiminnon. Urlencode () esimerkiksi on urldecode () kumota sen toimia, jotta voit alkaa käyttää merkkijonon kuin teistä olisi ennen koodaa.
Tarkista pyynnöstä menetelmä
Heitä if julkilausuma noin olemassa olevan lomakkeen käsittelijä, joka tarkistaa, onko tiedot ovat lähtöisin globals post muuttuja. Jos ei, niin käyttäjä ei käytäkään lomakkeen tapaan kuin on suunniteltu sitä voidaan käyttää.
-
<?php -
if ( $_SERVER [ ‘REQUEST_METHOD’ ] == ‘POST’ ) { -
//typical form processes -
} else { -
echo "The form can not be used like that" ; -
} -
?> - Lataa tämä koodi: 0305spamrequestmethod.txt
Muuta tämä GET jos käytät sitä. Haluan kuitenkin korkea suositella sinulle koskaan käytä tätä menetelmää, koska se on epävarma.
Tarkista pyynnöstä lähde
Sinun tulisi myös tarkistaa, onko pyyntö on peräisin oma palvelin. Tämä on hyvin yleinen menetelmä muodon väärinkäyttö, joka ei välttämättä tarkoita sitä, voit saada roskapostia. Jos olet palvelimen on tulossa paljon palautuneet sähköpostiviestit sen oletus sähköposti sinulla voi olla joku väärin sivustosi tällä tavalla.
-
<?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" ; -
} -
?> - Lataa tämä koodi: 0305spamhostsource.txt
Käytä säännöllisiä lausekkeita tietojen validointi
Haluan tarkistaa tietoja käyttävien preg_match (tai säännöllinen lauseke-toiminnot). Tämä tapa tappaa paljon kärpästä yhdellä iskulla. Miksi kirjoittaa erilliseen erikoistoimintojaan tarkistaa, onko merkkijono on tyhjä, sitten toinen, jos se mahdollistaa numeroita, ja toinen, jos se mahdollistaa alfa-merkkiä, ja toinen erityisiä pituus ja toinen ... saat kohta.
if (! preg_match ("/^[ A-Z0-9] (5,15 }$/", $ nimi)) $ virhe .= "<li class=\"errors\"> Nimi-kenttään voi sisältää vain kirjaimia ja-numerot (ei välilyöntejä) ja voin vain olla enintään 15 merkkiä pitkä. </ li> ";
Kun preg_match Olen tarkistaa, että nimi kenttä sisältää vain kirjaimia ja numeroita sekä arvot (isot) ja sen on oltava vähintään 5-15 merkkiä pitkä. Jos et täytä tätä standardia sopiva teksti on lisätty $ virhe.
Käyttämällä "[muuttuja] [piste] [sama] [teksti]" tässä muoti sallii minun pitää jatkuvasti muuttuva, että olen lisäämällä. Voin sitten tarkistaa, jos $ virhe sisältää kaikki tiedot, ennen kuin skripti ei mitään merkittävää kyselyitä. Jos on virheitä, voit sylkeä ne yhtymällä $ virheen ja pyytää käyttäjää korjaamaan niitä. En sitten käyttää CSS on tyyliä minun virheitä, jotka voit nähdä class = \ "virheet \".
Regular expressions defiantly on oppimiskäyrä on, mutta ne ovat yksi parhaita keinoja, joilla voidaan yksinkertaistaa henkesi useissa eri tilanteissa. I'll syventyä yksityiskohtaisesti niistä tiellä, mutta nyt voit halutessasi ostaa kirjan tai tehdä Google-hakuja.
Ei-teknisiä kertaus
-Pantava täytäntöön CAPTCHA script.
-Escape vinoviivoilla (ja muiden huono merkkiä).
-Tarkista, onko tietoja on tulossa lomakkeen avulla oikea menetelmä.
-Tarkista, onko pyyntö on peräisin oma palvelin.
-Check-tietoja käyttämällä säännöllinen lauseke.
Tämä on vain jäävuoren huippu siitä, mitä voin kertoa sinulle roskapostia. Thats miksi olen päättänyt tehdä mini-sarjassa sitä. Yli muutaman seuraavan viikon aikana aion saat yksityiskohtaisempia keinoja I käsitellä roskapostia. Kommentoi alle tai sähköpostitse minulle oman roskapostin ennalta ehkäiseviä menetelmiä. Jos kyseessä on uusi tai ainutlaatuinen tekniikka aion postitse sen tulevan blogin pitkin, jossa on linkki takaisin blogiisi. Vain kirjoittaa kommentteja alla ja sisältää URL-sivustolla alalla.





































Se vain tapahtui minulle ... perustamalla niille, jos kannanotot, joiden die () voi olla helpompaa nopea ja likainen menetelmällä. Mikä Olen varma, että useimmat teistä ainakin nyt halua quickfix vain nakata tuumaa Pidä mielessä ... Jotain tältä:
if ($ _SERVER [ 'REQUEST_METHOD']! == 'POST') (die ( "Lomake ei voida käyttää kuten että");)
Voit laittaa, että missä tahansa alussa käsikirjoituksen, jotta se tulee voimaan ilman huolta olemassa olevan koodin liikaa.