at blive clean med folkesundhedsprogrammet

, bliver ren med folkesundhedsprogrammet,,,,, andel,,,,,,,, 10,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, datasikkerhed er vigtige og ofte undervurderes af designere, udviklere og kunder ens.da php 5.2.0, data sanitization og validering er blevet betydeligt lettere med indførelsen af data filtrering.i dag skal vi se nærmere på disse filtre, hvordan man bruger dem, og bygge et par skik funktioner.,,, tutor detaljer, programmet: folkesundhedsprogrammet, version: 5.2.0 +, vanskeligheder:, begynder, forventet produktionstid: 20 minutter,,, indledning jeg har altid ment, at det er let at skrive kode i folkesundhedsprogrammet og endnu lettere at skrive dækningsløse kode i folkesundhedsprogrammet.spredning af folkesundhedsprogrammet på internettet virkelig er blevet hjulpet ud af dets anvendelse i populære open source software - pakker, som wordpress, drupal, og magento samt større net ansøgninger som facebook og med folkesundhedsprogrammet, der anvendes i så mange forskellige instanser (dynamisk websteder, omfattende net ansøgninger, blogging platforme, indhold, forvaltningssystemer og e - handel er kun en del af de mange ansøgninger til folkesundhedsprogrammet) mulighederne for, beskidt, data og usikre systemer er talrige.denne lektion vil forklare nogle metoder til at rense med folkesundhedsprogrammet: data sanitization og validering, ved at fokusere på flere forskellige former for data input og anvendelse af høreværn filtre og skik funktioner.,, hvorfor steriliseret og validere?i denne forelæsning, vi er virkelig fokuserer på data input, som brugere eller eksterne kilder kan give.det betyder, at vi ikke kan kontrollere de data, vi modtager.alt, hvad vi kan gøre, er at kontrollere, hvad der sker med det, når vi får det.der er alle mulige trusler vedrørende datasikkerhed fra bruger input og eksternt data. nogle fn - populære data sikkerhedstrusler:,, cross - site scripting (xss): en form for kode injektion, hvor et manuskript injiceres på et websted, en helt anden hjemmeside.det er langt den mest almindelige sikkerhed sårbarhed på nettet.to nylige, meget fremtrædende eksempler af denne teknik er stilken dagligt, og mikeyy twitter orme fra tidligere på året, at der anvendes dårligt renses input til at iværksætte javascript via en "angrebet" twitter brugergrænsefladen.,, sql injektion: den anden mest fælles sikkerhed sårbarhed online, det er en anden form for kode injektion, hvor et manuskript er anvendes til at deltage i et af talrige udnyttende adfærd, herunder, men ikke begrænset til, at afsløre og /eller at få uautoriseret adgang til data om oplysninger i en database, eller ganske enkelt intravenøs kode skal leveres eller udføres inden for et websted, således at eller ændre websted.,, cross - site request (csrf /xsrf), - en mindre fælles udnytte snarere beror på datakilder som browser og møde småkager end dårligt renses og validerede data input, csrf (udtales "hav surf") kan anvendes til at udføre ordrer på et websted, uden brugerens tilladelse.en populær csrf metode er ved hjælp af en ukorrekt dannet billeddata uri eller src - værdi til at udføre et manuskript, i stedet for at vise et billede.,, upassende data: ikke en "sikkerhed sårbarhed" i sig selv, upassende data kan forårsage mange problemer for et websted, ejer eller databaseadministratoren.ofte ukorrekte data kan bryde dårligt kodet websteder eller forårsage automatiserede systemer til at styrte.et eksempel på dette var evnen til at ændre hele myspace - profil sider ved udstationering af alle mulige /html /css - hackery (note: dette kan stadig arbejde. jeg har ikke brugt myspace i lang tid).,, billede, til vores formål, vi skal kun fokusere på server-side metoder til forbedring af datasikkerhed med folkesundhedsprogrammet, så lad os se, hvor begreberne "sanitization" og "validering" er defineret med hensyn til folkesundhedsprogrammet.i henhold til folkesundhedsprogrammet manual:,, validering, anvendes til at validere og kontrollere, om de oplysninger opfylder visse kvalifikationer.for eksempel, at i filter_validate_email vil afgøre, om de data, der er en gyldig, e - mail - adresse, men vil ikke ændre dataene selv., sanitization vil desinficere data, så det kan ændre den ved at fjerne uønskede personer.for eksempel, at i filter_sanitize_email vil fjerne tegn, der er uhensigtsmæssige i en e - mail adresse skal indeholde.det sagde, at det ikke validere dataene, hovedsagelig, hvis din hjemmeside er en natklub, at alle ønsker at komme ind i, valideringskontrol gæstelisten og id på døren, mens sanitization fungerer som udsmider, der kaster nogen uønskede personer, som tilfældigvis squeak fortid.med dette i tankerne, lad os se på filtre udvidelse. hvad filtre, har jeg?alle høreværn anlæg ikke er skabt lige.under folkesundhedsprogrammet 5.2.0 var indførelsen af filtre, ikke alle anlæg, har det samme sæt af filtre på deres filtre udvidelse.de fleste anlæg vil få alle de filtre, vi går forbi, men at lære dig lidt om filtrene udvidelse, skal vi finde ud af, hvad du har på din server.In the source download, I have included a file called ,getfilters.php, that, once installed and run on your server, will display all of your filters (both data filters available through the ,filter_var, function and stream filters available through ,stream_filter_append,)., echo "<h1>Data Filters</h1>\ <table>\ <tr>\ "; echo "<td><strong>Filter ID</strong></td>\ "; echo "<td><strong>Filter Name</strong></td>\ </tr>"; foreach(filter_list() as $id =>$filter) { \t echo "<tr><td>$filter</td><td>".filter_id($filter)."</td></tr>\ "; } echo "</table>\ ";,First, we get the array containing the list of all availablefiltre med, filter_list,, så vi loop gennem nettet, og echo ud filteret navn, find ud af filteret er tildelt id, og echo dette id med. hvordan skal jeg bruge et filter?under folkesundhedsprogrammet filtre til validering og sanitization er aktiveret ved mindst to værdier til folkesundhedsprogrammet filtre udvidelse funktion, filter_var,.som et eksempel, lad os bruge steriliseret filter til hele tal, som så: $værdi = 123abc456def, echo filter_var ($værdi, filter_sanitize_number_int), for eksempel, har vi en variabel, $værdi, som ledes gennem filtre udvidelse funktion, filter_var ved, filter_sanitize_number_int, filter.dette resulterer i følgende output:, 123456, steriliseret filter til hele tal, fjerner alle ikke - heltal tegn fra produktions - og producerer en ren heltal.inden for at downloade kildekoden, kan du prøve forskellige råmaterialer, og den vil anvende en række fælles filtre til dit input værdi.jeg har medtaget en række forskellige eksempel tråde, som man kan teste ud. hvad har de forskellige filtre?den følgende liste er ikke fuldstændig, men det indeholder de fleste af filtre, som standard med 5.2.0 + anlæg.skik filtre og de ekstra fra custom forlængelse er ikke medtaget her.,, filter_validate_boolean: kontrol, hvorvidt oplysninger videregives til filteret er en boolean - værdien af ægte eller falske.hvis værdien er et ikke - boolean - værdi, der vil vende tilbage, falske.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02: $value01 = sandt. hvis (filter_var ($value01, filter_validate_boolean)) (echo 'ægte';) andet (echo "falske"} echo '< br /> < br /> "$value02 = sandt. hvis (filter_var ($value02, filter_validate_boolean)) (echo' ægte ';) andet (echo" falske "), filter_validate_email: kontrol, hvorvidt dataene videregives til filteret er en potentielt gyldigt e - mail - adresse.det er ikke kontrollere, om den e - mail - adresse, faktisk eksisterer, at udformningen af den e - mail - adresse er gyldig.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02, fordi den anden mangler den nødvendige @domain.tld del af e - mail - adresse): $value01 = 'test (f.eks. kom. hvis (filter_var ($value01, filter_validate_email)) (echo' ægte ';) andet (echo "falske"} echo' < br /> < br /> "$value02 = nettuts. hvis (filter_var ($value02, filter_validate_email)) (echo 'ægte';) andet (echo" falske "), filter_validate_float: kontrol, hvorvidt dataene videregives til filteret er en gyldig flyde værdi.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02, fordi komma separatorer) er ikke tilladt i float - værdier): $value01 =. 1.234. "hvis (filter_var ($value01, filter_validate_float)) (echo 'sandt') andet (echo" falske "} echo '< br /> < br />" $value02 = 1234. hvis (filter_var ($value02, filter_validate_float)) (echo' ægte ';) andet (echo "falske"), filter_validate_int: kontrol, hvorvidt dataene videregives til filteret er en gyldig heltalsværdi.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02, fordi fraktioner /decimal numre er ikke tal): $value01 = 123456; hvis (filter_var ($value01, filter_validate_int)) (echo 'ægte';) andet (echo "falske"} echo '< br /> < br /> "$value02 = 123.456. hvis (filter_var ($value02, filter_validate_int)) (echo' ægte ';) andet (echo" falske "), filter_validate_ip:, kontrol, hvorvidt dataene videregives til filteret er et potentielt gyldige ip - adresse.det er ikke kontrollere, om ip - adresse, ville løse, bare at det passer de krævede data struktur til ip - adresser.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02: $value01 = 192.168.0.1. hvis (filter_var ($value01, filter_validate_ip)) (echo 'ægte';) andet (echo "falske"} echo 's < br /> < br /> "$value02 = 1.2.3.4.5.6.7.8.9. hvis (filter_var ($value02, filter_validate_ip)) (echo' ægte ';) andet (echo" falske "), filter_validate_url: kontrol, hvorvidt oplysninger videregives til filteret er et potentielt gyldige url.det er ikke kontrollere, om url ville løse, bare at det passer de krævede data struktur til ip - adresser.manuskriptet nedenfor, vil echo "ægte" for eksempel data, $value01, men vil echo "falske" for eksempel data, $value02: $value01 = http: //net. tutsplus. kom. hvis (filter_var ($value01, filter_validate_url)) (echo 'ægte';} andet (echo "falske"} echo '< br /> < br /> "$value02 = nettuts. hvis (filter_var ($value02, filter_validate_url)) (echo' ægte ';) andet (echo" falske "), filter_sanitize_string:, uden at dette filter fjerner alle data fra en snor, der er ugyldige eller ikke tilladt i snor.det vil f.eks. fjerne html hundetegn, < manuskript > eller < stærk > fra et input snor: $værdi = < manuskript > indberetning ('trouble her). < /manuskript > «. echo filter_var ($værdi, filter_sanitize_string); dette manuskript vil fjerne mærker og vende tilbage til følgende:, indberetning ('trouble her), filter_sanitize_encoded: mange programmører anvendelse på er, urlencode(), funktion til at håndtere deres url - kodning.dette filter hovedsagelig gør det samme.det vil f.eks. lagre alle rum og /eller særlige tegn fra et input snor: $værdi = < manuskript > indberetning ('trouble her). < /manuskript > « echo filter_var ($værdi, filter_sanitize_encoded); dette manuskript vil indkodning af tegnsætning. rum, og beslag, derefter vende tilbage til følgende:,% 3cscript% 3ealert%, 28% 27trouble% 20here% 27% 29% 3% 3c% 2fscript% 3e,,, filter_sanitize_special_chars: dette filter, som standard, html indkodning af særlige tegn, som angiver, ampersands, og i parentes (ud over tegn med ascii - værdi mindre end 32).mens de demo side ikke gør det klart, uden at den kilde (fordi html indkodet særlige tegn vil blive fortolket og gjort), hvis du tager et kig på kildekoden, kan du se den kodning på arbejdspladsen: $værdi = < manuskript > indberetning ('trouble her.; < /manuskript > « echo filter_var ($værdi, filter_sanitize_special_chars); det er den særlige tegn på deres html indkodet selv, &< manuskript &> indberetning (&' problemer her &'); &< /manuskript &>,, filter_sanitize_email: dette filter er præcis, hvad man skulle tro, det gør.det fjerner ethvert tegn, som er ugyldig i e - mail - adresser (som parentes i parentes, koloner osv.).for eksempel, lad os sige, du har indsat parenteser omkring et brev i din e - mail - adresse (ikke spørge hvordan, brug din fantasi): $værdi = 't e) st @ f.eks. kom, echo filter_var ($værdi, filter_sanitize_email), det fjerner de i parentes, og du får din smukke, e - mail - adresse: test (f.eks. kom, det er et stort filter til brug på e - mail former i samråd med filter_validate_email at reducere bruger fejl eller forhindre xss relateret angreb (som en tidligere xss angreb med tilbagebetaling af de oprindelige data i en ikke - renses e - mail område direkte til browseren). filter_sanitize_url:,,, i lighed med den e - mail - adresse steriliseret filter, dette filter er præcis, hvad man skulle tro det.det fjerner ethvert tegn, som er ugyldigt i en url (som visse utf - 8 personer osv.).for eksempel, lad os sige, du har tilføjet et "®" i din webstedets url (igen, skal du ikke spørge, hvor, som en velociraptor gjorde det): $værdi = http: //net. tuts ® plus. kom, echo filter_var ($værdi, filter_sanitize_url), det fjerner uønskede "®", og du får din smukke url: http: //net. tutsplus. kom, filter_sanitize_number_int: dette filter er det samme som filter_validate_int, men i stedet for blot at kontrollere, om det er et heltal eller ej, det faktisk fjerner alt ikke - tal fra værdi.handy, også for belastende spambots og tricksters i nogle indgående former: $value01 = 123abc456def, echo filter_var ($value01, filter_sanitize_number_int); echo '< br />. $value02 = 1.2.3.4.5.6.7.8.9, echo filter_var ($value02, filter_sanitize_number_int); de dumme breve og decimaler, smidt lige ud:, 123456 123456789,, filter_sanitize_number_float: dette filter er det samme som filter_validate_int, men i stedet for blot at kontrollere, om det er et heltal eller ej, det faktisk fjerner alt ikke - tal fra værdi.handy, også for belastende spambots og tricksters i nogle indgående former: $value01 = 123abc456def, echo filter_var ($value01, filter_sanitize_number_float); echo '< br />. $value02 = 1.2.3.4.5.6.7.8.9, echo filter_var ($value02, filter_sanitize_number_float), igen, alle de dumme breve og decimaler, smidt lige ud:, 123456 123456789, men hvad hvis du ville holde en decimal i det næste eksempel: $værdi = 1.23; echo filter_var ($værdi, filter_sanitize_number_float), ville det stadig tage det tilbage:, 123, en af de vigtigste grunde til, at filter_sanitize_number_float og filter_sanitize_int er separate filtre er at gøre det muligt for det via et særligt flag "filter_flag_allow_fraction", indsættes som tredje værdi vedtagettil filter_var: $værdi = 1.23; echo filter_var ($værdi, filter_sanitize_number_float, filter_flag_allow_fraction); det ville holde decimal og vende tilbage: 1.23, optioner, flag og array - kontrol, åh gud!det flag i det sidste eksempel er blot én af mange flere muligheder, flag og array - kontrol, at tillade, at du har mere i kontrol over, hvilke typer data bliver renset, definitioner af delimiters, hvordan arrays behandles af filtre, og mere til.du kan finde mere om disse flag og andre beslægtede funktioner i folkesundhedsprogrammet filter manuel er filtre udvidelse afsnit. andre metoder til santizing data med folkesundhedsprogrammet, nu tager vi over et par vigtige supplerende metoder til sanitizing data med php at forhindre "beskidte data fra forvolder skade på deres systemer.det er særlig nyttigt for ansøgninger stadig kører på 4, da de alle var til rådighed, da det blev løsladt.,, htmlspecialchars,: folkesundhedsprogrammet funktion omdanner 5 særlige tegn på deres tilsvarende html enheder:, "&" (»og« - tegn) bliver "& amp;", "" (dobbelt:) bliver "& quot; når ent_noquotes er ikke fastsat." "(citat) bliver" &' kun når ent_quotes er fastsat. "<" (under) bliver "& det;", "> (større end) bliver" & gt, anvendes det som alle andre på snor funktion: echo htmlspecialchars ("$string"), htmlentities, som htmlspecialchars, folkesundhedsprogrammet funktion omdanner tegn i deres tilsvarende html enheder.den store forskel er, at alle personer, der kan konverteres vil blive konverteret.det er en nyttig metode til uforståelige e - mail - adresser fra nogle robotter, der indsamler og e - mail - adresser, som ikke af dem er programmeret til at læse htmlentities. anvendes det som alle andre på snor funktion: echo htmlentities ("$string"), mysql_real_escape_string,: dette mysql funktion, hjælper med at beskytte mod sql injektion angreb.det betragtes som en bedste praksis (eller endog en obligatorisk praksis) at give alle oplysninger, der sendes til en mysql forespørgsel gennem denne funktion.det unddrager sig enhver særlige tegn, der kan være problematisk, og det ville forårsage lille bobby tabeller til destory endnu en skole elever database. $forespørgsel = "vælg * fra tabel, hvor værdien =". mysql_real_escape_string ("$klynge). begrænse 1,1 ', $runquery = mysql_query ($spørgsmål), sædvane funktioner, mange mennesker, de indbyggede filtre og funktioner er bare ikke godt nok.validering af data af nogle data som telefonnumre, zip kode eller e - mails kræver ofte mere strenge validering og maskering.for at gøre dette, er der mange, der skaber skik funktioner for at validere og deres oplysninger er rigtige.et eksempel på dette kan være så enkelt, som ved hjælp af en mysql forespørgsel til se oplysningerne i en database med kendte værdier som så:, funktion checkzipcode ($) værdi ($zipcheck = "vælg tæller (*) « - databasen er. er zipcodes `, hvor værdien =". filter_var (mysql_real_escape_string ($værdi), filter_sanitize_number_int). '"" $tæller = mysql_query ($zipcheck); hvis ($tæller = = 1) {tilbage.} andre {tilbage falske), andre skik funktioner kan gøres, som ikke afhænger af databaser med kendte værdier, og der kan skabes ved at kontrollere magi citater. tøjet her, og at flygte for indsættes i en database:, funktion cleanstring ($serie) ($detagged = strip_tags ($snor); hvis (get_magic_quotes_gpc()) ($strippet = stripslashes ($detagged); $flygtede = minsql_real_escape_string ($strippet)} andre {$flygtede = mysql_real_escape_string ($detagged)} tilbage $flygtet}, er uendelige muligheder, især hvis man integrere regelmæssigt udtryk, men for de fleste gange folkesundhedsprogrammet filtre forlængelse bør gøre det trick, følger os på twitter, eller abonnere på nettuts + rss foder til mere daglige web - udvikling tuts og genstande,.,,,


Sanitization and Validation of Forms
Exploits of a Mom



Previous:
Next Page: