Ik heb zo veel spam in mijn brievenbus alledaags geworden dat ik meer tijdschrappen het dan ik uitgaf voegde nieuwe inhoud toe, en handhaafde plaatsen of beginnene nieuwe plaatsen combineerden (typisch verhaalrecht). Wat van uw website-spam is niet afwendbaar of, het is afwendbaar, maar aan de kosten van bruikbaarheid en/of goede informatie gevangen in het “bad materiaal te worden” ook.
Geen twijfel, indien u’re ernstig over webontwikkeling u’re toestand te creëren en in te werken op u met formulieren op regelmatige basis. Voornamelijk met deze nieuwe web 2,0 houdingen heeft ieder…gee wiz, wat’s dat?
CAPTCHA
CAPTCHA is het nummer dat een methoden meeste mensen gebruiken spam vandaag te voorkomen. Wat is het?
“a is CAPTCHA een uitdagingsreactietest gebruikte op computers om te controleren indien de gebruiker menselijk is. Een gemeenschappelijke soort van CAPTCHA die op websites wordt gebruikt vereist dat de bezoeker de brieven en aantal een vervormd beeld typt. Deze methode wordt op het feit gebaseerd dat moeilijk voor computers is om de tekst van het beeld te onttrekken terwijl het heel gemakkelijk voor mensen is. ” - captchacreator com
Hier’s enkele hulpbronnen naar handschriften zo dat u’ll die functionaliteit in uw eigen formulieren kan uitvoeren:
Ontsnap Gegevens - Voorkom SQL Injecties
Capcha is usless indien u’re uw formulier verlaat dat onbeschermd is van aanval. Herinner u om post reeksen met addslashes () te filteren of mysql_real_escape_string().
Kijk ook eens naar deze functies voor andere gelijkaardige soort van controles die nuttig misschien zou zijn:
- Htmlspecialchars () - Ontsnapt de volgende tekens: &,’,”,>,< ...that is the ampersand, single quote, double quote, less than, and greater than symbols.
- Strip_tags() - Stroken uit alle HTML en PHP coderen van de gegeven reeks.
- Htmlentities () - Bekeert ALLE tekens naar hun HTML entiteitsequivalent (dit is een meer vangt alle versies van htmlspecialchars).
- Urlencode () - Codeert het internetadres om reeksen op een voorbijgaan KRIJGT methode. Toen ik vermeldde, don’t gebruik KRIJGT met formulieren. Dit is nuttig wanneer u’re gebruikers invoervariabelen voor andere redenen voorbijgaat.
Herinner u, eens u bekeert gegevens zoals dit met een van de bovenstaande functies, u kunt maken ongedaan het voor leesbaarheid en output met zijn tegengestelde functie. Urlencode () bijvoorbeeld heeft urldecode () te maken ongedaan zijn acties zo dat u kunt beginnen met de reeks als u hebt voor het codeert.
Controleer Verzoek Methode
Werp een indien verklaring rond uw bestaande formulierbewerker die controleert te zien indien gegevens van de globale post variabele komen. Indien niet, dan heeft niet de gebruiker toegang tot uw formulier de weg u ontwierp dat het gebruikt te worden.
<? phpIndien ( $_SERVER [ ‘REQUEST_METHOD’ ] == ‘POST’ ) {//Typisch formulier verwerkt} anders {Weergalm " kan Het formulier niet worden gebruikt zoals dat " ;}- ?
> - Download deze code:
Verander dit om TE KRIJGEN indien u’re met dat in plaats daarvan. Nochtans, zal ik hoogtepunt aanraden u nooit gebruikt die methode als het onveiliger is.
Controleer Verzoek Bron
U zou ook moeten controleren te zien indien het verzoek van uw eigen server voortbrengt. Dit is een heel gemeenschappelijke methode van formuliermisbruik dat doesn’t noodzakelijk beteken u’ll ontvangt spam. Indien u’re server veel gesprongen e-mails naar zijn standaarde-mail u krijgt zult iemand misbruiken misschien uw plaats in deze manier laten.
<? php$Veroorzaak = $_SERVER [ ‘HTTP_HOST’ ] ;//Of indien u slechts het domein u wilt bespeuren kunt een regelmatige uitdrukking gebruiken om het te filteren.$Veroorzaak = ereg_replace ("^(www.)?([^.] ).[^.] $” , " \\2" , $_SERVER [ ‘HTTP_HOST’ ] ) ;Indien ( $ ! veroorzaak = = " robmalon.com " ) {Weergalm " hebt u onwettig toegang tot dit handschrift " ;} anders {//Typisch formulier verwerkt}//De referrer ook zou moeten zijn van uw eigen domein…likewise, indien er geen verwijzing dan de gebruiker duidelijk isnt is met uw formulier correct (zo dat wij dont moet op dat). controleren.//Note: stristr () zoektochten voor het eerste voorval van een reeks in nog een reeks.Indien ( stristr ( getenv ("HTTP_REFERER " ) , $veroorzaak ) ) {//Typisch formulier verwerkt} anders {Weergalm " hebt u onwettig toegang tot dit handschrift " ;}- ?
> - Download deze code:
Met Regelmatige Uitdrukkingen Voor Gegevensbevestiging
Ik hou van te controleren gegevens met preg_match (of de regelmatige uitdrukkingsfuncties). Deze methode doodt veel vogels met een steen. Schrijf waarom afzonderlijke functies om te controleren indien een reeks leeg is, dan een andere indien het nummers toestaat en een andere indien het alfatekens toestaat en een andere naar specifieke veldlengte en een andere…you krijg het punt.
Indien (! preg_match_match ({5.15}$/”, $naam)) $fout =. “<li klas = \”errors\”>Het Naamveld kan enkel brieven en nummers (geen ruimtes) bevatten en kan enkel tot 15 tekens lang zijn.</li>”;
In de preg_match controleer ik dat het naamveld enkel bevat alfanumerische tekenwaarden (ongevoelig) insluit en moet ten minste 5 tot 15 tekens in lengte zijn. Indien u don’t meeting die die specificatie tekst toewijst naar $fout wordt toegevoegd.
Met “[variable] [dot][equals] [text]” in deze mode toestaat dat mij een aanhoudende variabele dat bij te houden ik’m naar toe te voegen. Ik kan dan controleren te zien indien $fout gegevens bevat voor mijn handschrift beduidende vragen doet. Indien er fouten u zijn kunt hen spuwen uit door te weergalmen $fout en de gebruiker te vragen om hen te verbeteren. Ik gebruik dan CSS om mijn fouten te stileren die u met klas kunt zien = \”errors\”.
Regelmatige uitdrukkingen hebben uitdagend een lerende bocht op hen, maar zij zijn een van de best werktuigen die kan helpen uw leven in een variatie van toestanden te vereenvoudigen. Ik’ll ga in meer detail over hen beneden in de weg, maar voorlopig u zult misschien een boek willen kopen of doet sommige Googling.
De Niet-technische Recapitulatie
-Uitvoer een CAPTCHA handschrift.
-Ontsnapping hakt (en andere slechte tekens).
-Controle om te zien indien gegevens naar uw formulier komen met de correcte methode.
-Controle om te zien indien het verzoek van uw eigen server voortbrengt.
-Controleer gegevens met een regelmatige uitdrukking.
Dit is slechts de fooi van de ijsberg waarvoor ik u over spam kan vertellen. Dat waarom ik’ve besliste een miniserie daarvan te maken. Over het volgende paarweken zal ik u meer detailleerde wegen brengen die ik met spam omga. Becommentarieer beneden of e-mail mij over uw eigen spam preventieve methoden. Indien het een nieuwe of unieke techniek is die ik het in een toekomstige blog samen met een schakelrug naar uw blog zal versturen. Schrijf slechts in het commentaar onder en omvat uw internetadres in het website-veld.






































Het gebeurde slechts naar mij…setting op die indien verklaringen met een dobbelsteen () verklaring gemakkelijker voor een vlugge en vuile methode zou misschien zijn. Welk ik’m zeker de meesten onder u tenminste voorlopig een quickfix slechts zouden willen om te gooien in. Hou bij dat in geest…something zoals dit:
Indien ($_SERVER[ "REQUEST_METHOD"]! = = "VERSTUUR") { dobbelsteen (”the formulier kan niet worden gebruikt zoals dat”); }
U kunt zetten dat overal aan het begin van een handschrift voor het om van kracht te worden zonder te maken zich dat zorgen om te codeer ook veel bestaan.