steeds meer en meer schoon, schoon, PHP,,,,,,,,,, delen, 10 - eenheid,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen.,, de veiligheid van de gegevens is zeer belangrijk en vaak architecten, projectontwikkelaars en klanten.PHP 5.2.0 als gevolg van de verwerking van de gegevens en de verificatie van de gegevens, de invoering van aanzienlijk gemakkelijker te filteren.Vandaag moeten we kijken naar deze filter, hoe ze worden gebruikt, en het opzetten van een eigen functie.,,, de opleiding, de programma 's: PHP versie:,, 5.2.0 +, moeilijkheden voor beginners, in de verwachting dat de voltooiing van de tijd: twintig minuten,,,, bevat, heb ik altijd het gevoel, met behulp van de code van het makkelijk, zelfs gemakkelijker in de PHP slechte codering.In het web van verspreiding heeft helpen PHP in de open source - software zoals wordpress, drupal wordt gebruikt, en de belangrijkste magento en web - toepassingen, zoals Facebook; PHP wordt gebruikt in een groot aantal verschillende omstandigheden (dynamische website, diepgaande toepassing van het internet, blogs, de inhoud en het systeem voor de elektronische handel is slechts een van de vele toepassingen PHP de subgroep) kansen, vies - gegevens en de veiligheid van de systemen is niet meer.Deze handleiding zal de invoering van methoden, PHP schoon: de verwerking van de gegevens te controleren, en door het invoeren van gegevens van verschillende vorm en het gebruik van filters en PHP omschreven taken, schoonmaken, validering, waarom?In deze handleiding, we zijn gericht op de gebruiker of een externe bron van gegevens kan worden voorzien.Dit betekent dat we ons niet aan de controle van de ontvangen gegevens.Het enige wat we kunnen doen is de controle van het in het na hebben we alles.Er zijn allerlei de inbreng van gebruikers en derden gegevens over de bedreiging van de veiligheid van sommige gegevens, gegevens niet, pop, bedreigingen van de veiligheid:,, de site scripting (xss): een code in het script, injectie op een website, van een heel andere websites.Dit is de meest voorkomende inbreuken op de veiligheid van on - line.De recente voorbeelden van deze technologie, zeer belangrijk is mikeyy stro en elke dag Twitter wormen van eerder dit jaar, zonder gebruik te maken van investeringen door de invoering van de ontsmetting javascript "besmetting" Twitter web interface.,, SQL injectie: de tweede meest voorkomende gaten in de beveiliging van de netwerken, dit is een andere vorm van SCRIPT injectie bij een aantal uitbuiting omvatten, maar zijn niet beperkt tot de blootstelling en /of ongeoorloofde toegang tot gegevens, verandering van de gegevens in een databank, of een simpele code injectie worden gemaakt of de website te breken of veranderingen in de uitvoering van de website.,, trans - station om vervalsing (csrf /XSRF), een gemeenschappelijke: de mazen in de wet, meer afhankelijk van de bron van gegevens als broersEn dan wser zitting koekje niet ontsmet en verificatie van gegevens, csrf (uitgesproken "golf") kan worden gebruikt voor de uitvoering van orders van een website, geen van de gebruikers van de vergunning.Een populaire methode is het gebruik van csrf ongepast beeld te vormen van de waarde van de gegevens of src uri voor de uitvoering van het script, maar niet de beelden.,, de onjuiste gegevens, niet een "veiligheidsrisico", zelf, niet de juiste gegevens kan het gastland als gevolg van problemen, de eigenaar of beheerder van De website van de database.Meestal niet de juiste gegevens kan breken, lage code of leiden tot de ineenstorting van het systeem van de website van de automatisering.Een voorbeeld hiervan is de veranderen de hele MySpace pagina 's op de hoogte van de verschillende http: //europa.eu.int /CSS ossenkar vermogen (noot: dit kan nog steeds werken. Ik heb al heel lang geen gebruik van MySpace).,, imago, voor ons doel, ons zal zich concentreren op de verbetering van de Veiligheid van de gegevens PHP server. Laten we eens kijken ", ontsmetting" en "of" en PHP definitie.Volgens het handboek: PHP voor controle of controle, verificatie van gegevens, die aan bepaalde voorwaarden voldoen.Bijvoorbeeld, door de in de filter_validate_email zal bepalen of de gegevens van een geldig E - adres, maar geen wijziging van de gegevens zelf, de ontsmetting van de gegevens worden ontsmet, dus het kan veranderen door het wegnemen van de cijfers van het overbodig.Bijvoorbeeld, in de filter_sanitize_email zal door het e - mailadres bevatten de rol niet passend is.Dat is het niet, de verificatie van de gegevens.,, feitelijk, als je een website is een nachtclub, iedereen wil naar binnen, het controleren van de gastenlijst en ID 's in de deuropening en ontsmetting als uit een ongewenst is de laatste lijfwacht kraken.Daarvoor moeten we in het filter wordt naar een PHP, filters, wat heb ik?Alle PHP toenemende ongelijkheid.Hoewel de PHP 5.2.0 is filter wordt ingevoerd, niet alle in dezelfde installatie van filters van de uitbreiding van de filters.Het merendeel van de installatie van een alle filters, we moeten gaan, maar moet je leren een beetje over de uitbreiding van het filter, moeten we uitzoeken wat je op je server.In de bron. En ik heb een dossier opgenomen die, getfilters.php, die, eenmaal geïnstalleerde en het op je server, die alle van je zal worden genomen (beide worden genomen door de gegevens beschikbaar, filter_var, functie en de stroom van filters beschikbaar via stream_filter_append.,,,) ECHO '< h1> gegevens Filters< /h1> \ <; table> \ < tr> n "ECHO" <; td> < strong> filter ID< /strong> < /td> n "ECHO" <; td> < strong> filter Name< /strong> < /td> \ < /tr> "; voor (filter_list ($). => $filter) (ECHO" < tr> < td> $filter< /td> < td> ".Filter_id ($filter)." < /td> < /tr> n "ECHO" < /table>}; n ", ten eerste, we krijgen; de installatie met de lijst van alle beschikbareHet filter, filter_list, en de produktie van filters die netwerken, de naam van de aanduiding id, filteren, de id is ECHO, hoe ik het gebruik van filters?Voor de verificatie en hygiëne, PHP filter is door ten minste twee waarden PHP filter uitbreidingen van de filter_var, geactiveerd.Als een voorbeeld voor de ontsmetting van het filter, laten we het gehele getallen, de waarde van de dollar = ": 123abc456def"; ECHO filter_var (de waarde van de dollar, filter_sanitize_number_int); in dit geval hebben we een variabele, de waarde van de dollar, is door de uitbreiding van de taken van het filter, filter_var, het gebruik, de filter_sanitize_number_int, filter.Dit resultaat is als volgt: in de produktie, 123456, steriel filter om alle niet - gehele karakter van de output, die een schone integer.In de download - code, kun je proberen de verschillende input, het zal van toepassing zijn een aantal gebruikte filters voor de inbreng van uw inbreng.Ik heb ook een verschillende voorbeelden van touw, je kan het testen, en de verschillende filters?De onderstaande lijst is niet volledig, maar het bevat 5.2.0 + met filters voor de meeste.Gebruik van filters en uitbreiding van de toevoeging van die gewoonte worden hier niet behandeld. Filter_validate_boolean:,,, te controleren of de gegevens door het filter is een boolean, echt of nep,.Als de waarde van de niet - boolean, het is vals.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal de echo 's van gegevens, bijvoorbeeld value02 dollar waarde 01 = waar;:, als (filter_var (dollar waarde 01, filter_validate_boolean)) {'} {"echt", of "nep" terug - akoestische ";} < BR /> < BR /> value02 dollar = waar; als (filter_var (value02 dollar, filter_validate_boolean)) {'} {" echt "; - of valse;},, filter_validate_email: na te gaan, of de gegevens door het filter is potentieel doeltreffende e - mailadres.Het e - mailadres niet controleren of het e - mailadres van werkelijke bestaan, maar de regeling doeltreffend is.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal ECHO 's van gegevens, bijvoorbeeld value02 dollar (omdat de tweede gebrek aan de vereiste van het e - mailadres @domain.tld deel): $= "test", waarde 01 voorbeeld. COM "als (filter_var (dollar waarde; 01, filter_validate_email)) {'} {" echt "; - of valse ECHO 's;} < BR /> < BR /> value02 dollar =" NETTUTS "; als (filter_var (value02 dollar, filter_validate_email)) (ECHO" echt ";} {" of valse ECHO' s ";}, filter_validate_float:,, te controleren of de gegevens door het filter is een effectieve waarde van de praalwagen.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal ECHO 's van gegevens, bijvoorbeeld value02 dollar, een REËLE waarde omdat het niet mogelijk is de drijvende):, waarde 01 = 1.234 dollar; als (filter_var (dollar waarde 01, filter_validate_float) {-) de echte ";) of (ECHO valse;} ECHO < BR /> < BR /> value02 dollar =' 1234 '; als (filter_var (value02 dollar, filter_validate_float)) {'} {" echt "; - of valse;}, te controleren of de door de filter_validate_int:,, de gegevens van het filter is een effectieve waarde.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal ECHO 's van gegevens, bijvoorbeeld value02 dollar, want de score /decimaal geen geheel getal is, $waarde): 01 = "123456"; als (filter_var (dollar waarde 01, filter_validate_int)) {' "wat de" andere;} {ECHO valse;} ECHO < BR /> < BR /> value02 dollar = "123.456"; als (filter_var (value02 dollar, filter_validate_int)) {'} {"echt"; - of valse;}, te controleren of de door de filter_validate_ip:,, de gegevens van het filter kan een doeltreffend het IP - adres.Het zal niet controleren of het adres van de oplossing, maar het voldoet aan de eisen van het adres van de structuur van de gegevens.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal de echo 's van gegevens, bijvoorbeeld value02 dollar waarde 01 = ":, 192.168.0.1"; als (filter_var (dollar waarde 01, filter_validate_ip)) {'} {"echt"; - of niet;} ECHO < BR /> < BR /> value02 = "1.2.3.4.5.6.7.8.9 dollar"; als (filter_var (value02 dollar, filter_validate_ip)) {'} {"echt"; - of valse;},, filter_validate_url:, controleren of de gegevens door het filter kan Een doeltreffend URL' s.Het onderzoek zal op de website of niet, maar het voldoet aan de eisen van de structuur van de gegevens van de website.De volgende script zal ECHO "echte" als voorbeeld van de gegevens, de dollar in waarde 01 "valse", maar zal de echo 's van gegevens, bijvoorbeeld value02 dollar waarde 01 = ":, HTTP://netwerk. Tutsplus. COM"; als (filter_var (dollar waarde 01, filter_validate_url)) {'} "echt"; andere (ECHO van "nep";} ECHO < BR /> < BR /> value02 dollar = "NETTUTS"; als (filter_var (value02 dollar, filter_validate_url)) {'} {"echt"; - of valse;}, filter_sanitize_string:,, de bij verstek. Het filter van één reeks ongeldig is of niet kan worden geschrapt, geen gegevens.Bijvoorbeeld, het schrappen van een etiket als < script>: //europa.eu.int /comm /,.,, < sterke% GT% van de waarde van de dollar in een string:, = "< script> alarm ('trouble hier); < /; 's script >" filter_var (de waarde van de dollar, filter_sanitize_string), het script. Het schrappen van de etikettering en terug te keren naar de volgende: alarm ('trouble hier); filter_sanitize_encoded:,,, veel programmeurs gebruik maken van de persoonlijke beschermingsmiddelen, urlencode (), functies om de URL' s code.Deze filters in wezen hetzelfde te doen.Dit zou bijvoorbeeld een ruimte of het bijzondere karakter van de input - string: waarde = en < script> alarm "('trouble hier); < /scripts >"; ECHO filter_var (de waarde van de dollar, filter_sanitize_encoded); dit script zal de leestekens ruimten en tussen haakjes, en dan terug naar de volgende:%%%% 28% 3cscript 3ealert 27trouble 20here% 27% 29%%%% 3 3c 2fscript 3 sexies, filter_sanitize_special_chars:,, dit filter wordt, bij verstek gewezen: //europa.eu.int /comm /code van speciale tekens en symbolen, zoals de aanhalingstekens, tussen haakjes (met uitzondering van ASCII - waarde van minder dan 32 tekens).De demonstratie. Niet om de bron en niet zeer duidelijk (omdat het bijzondere karakter: //europa.eu.int /comm /code zal worden uitgelegd en presentatie van de), als je kijkt naar de source code, zie je de code van de waarde van de dollar:, = "< script> alarm ('trouble hier); < /scripts >"; filter_var (ECHO - de waarde van de dollar, filter_sanitize_special_chars); en het speciale karakter: //europa.eu.int /comm /code voor,zelf: & 60; script &> alarm (&' problemen &');& 60; /scripts &>,, filter_sanitize_email van het filter niet is: de mensen zullen denken dat het is.Dit wordt een e - mailadres ongeldig karakter (zoals tussen haakjes, tussen haakjes, waterleidingen, enz.).Zoals, laten we zeggen dat je per ongeluk in een e - mail adres tussen haakjes (vraag niet hoe, gebruik je verbeelding): de waarde van de dollar = t (e) St. "Voorbeeld. COM"; ECHO filter_var (de waarde van de dollar, filter_sanitize_email); het schrappen van die haken en je E - mail adres: test "voorbeeld, dit is een concert filter_validate_email in een e - mail te verminderen of om te voorkomen dat de gebruikers de verkeerde xss een goed filter (zoals in het verleden xss die de oorspronkelijke gegevens die op het gebied van de e - mail in niet - sterilisatie rechtstreeks aan de browser), vergelijkbaar Met filter_sanitize_url:,,. E - mailadres te filteren, de filter is niet iemand dat zou willen, en.Dit wordt een karakter in de URL nietig is (zoals bepaalde utf - 8 tekens, enz.).Zoals, laten we zeggen dat je per ongeluk de toevoeging van een "®" op je website van de URL (nogmaals, niet vragen, alsof dit is): waarde = ", HTTP://netto. 塔茨 ® plus. COM"; ECHO filter_var (de waarde van de dollar, filter_sanitize_url), het niet noodzakelijk om De "®;" en je knappe URL: netto - HTTP://terug. Tutsplus. COM. Filter_sanitize_number_int: het filter, vergelijkbaar met de filter_validate_int maar niet eenvoudig te controleren, als het een alleenstaande of niet, het is de afschaffing van alle niet - gehele waarde.Handig, inderdaad, in een vorm en haat deze bedrieger: $= ", waarde 01 123abc456def; ECHO filter_var (dollar waarde 01, filter_sanitize_number_int); ECHO" < BR /> "; value02 dollar =" 1.2.3.4.5.6.7.8.9 "; ECHO filter_var (value02 dollar, die stomme filter_sanitize_number_int); de brief achter de komma worden verdreven, filter_sanitize_number_float:: 123456789123456, vergelijkbaar met de filter, filter_validate_int maar niet eenvoudig te controleren, als het een alleenstaande of niet, is het eigenlijk om een einde te maken aan alle niet - gehele waarde.Handig, inderdaad, in een vorm en haat deze bedrieger: $= ", waarde 01 123abc456def; ECHO filter_var (dollar waarde 01, filter_sanitize_number_float); ECHO" < BR /> "; value02 dollar =" 1.2.3.4.5.6.7.8.9 "; ECHO filter_var (value02 dollar, filter_sanitize_number_float); nogmaals, al deze stomme brief, en achter de komma uitgezet: 123456789123456, maar als je wilt in de volgende voorbeelden, zoals: de handhaving van een decimale waarde =" 123 "; ECHO filter_var (de waarde van de dollar, filter_sanitize_number_float); en het nog steeds terug: de schrapping van 123, een van de belangrijkste redenen waarom filter_sanitize_number_float en filter_sanitize_int scheiding. Is dat met een speciaal merkteken" filter_flag_allow_fraction "toe te voegen, een derde voor de waarde van de overdracht vanDe filter_var:,,, de waarde van de dollar = "123"; ECHO filter_var (de waarde van de dollar, filter_sanitize_number_float, filter_flag_allow_fraction); om komma en terug, 1.23, opties, etikettering, en - controle, mijn God!In deze vlag, eindelijk een voorbeeld is van een meer keuze, mark, en - controle, kan je wat meer gegevens te verkrijgen en nauwgezette controle van de installatie, de definitie van REËLE, hoe meer door de filter.Kan je meer te weten komen over deze aanduidingen en in andere filter PHP handboek. Uitbreiding van de taken in verband met de gegevens van andere methoden en, santizing PHP nu, zullen we op een aantal cruciale aanvullende methoden voor ontsmetting van gegevens om te voorkomen dat de "PHP je de chaos van de vuile gegevens.Deze zijn nog steeds van toepassing op PHP 4 bijzonder nuttig, omdat ze beschikbaar zijn wanneer het wordt vrijgegeven,, htmlspecialchars, deze PHP functie: 5 bijzondere karakter als de overeenkomstige: //europa.eu.int /comm /entiteiten:,, "&" (symbool) in een "& AMP;", "" "(dubbele aanhalingstekens) wordt" & "als ent_noquotes niet." (enkele aanhalingstekens) wordt "&' alleen wanneer de ent_quotes," < "(minder dan een" & lt; "," > "(grote) wordt" & GT; het is. Net als elke andere PHP reeks functies: ECHO htmlspecialchars ($string "); htmlentities als htmlspecialchars:,,,, dat wordt omgezet in overeenkomstige PHP functie karakter: //europa.eu.int /comm /entiteiten.Het grootste verschil kan worden omgezet, alle tekens zijn omgezet.Dit is een nuttige weigerde het e - mailadres van een robot, het verzamelen van het e - mailadres van zijn programmering, niet om te lezen, het is htmlentities. Net als elke andere PHP reeks functies: ECHO htmlentities ($string "); mysql_real_escape_string mysql functie:,,, kunnen bijdragen tot het voorkomen van SQL aanvallen.Het wordt beschouwd als een van de beste praktijk (of zelfs verplicht alle gegevens door de praktijk), door middel van deze functie te sturen naar een mysql vraag.Het heeft geen speciale tekens te voorkomen, kan een probleem zijn, zal leiden tot de vernietiging van de kleine Bobby lijst van een andere school studenten database, vraag = "select * van de waarde van de dollar horloge =". Mysql_real_escape_string ($string). Beperking van 1,1 "; runquery = mysql_query dollar (USD vraag), omschreven taken, voor veel mensen. Deze ingebouwde filters en functies zijn niet goed genoeg.Voor de validering van de gegevens van een aantal gegevens, zoals een nummer, postcode, zelfs per e - mail vereist vaak een veel strengere controle en afscherming.Om dit te bereiken, veel mensen tot gewoonte om na te gaan of de gegevens van hun functie en echt is.Een voorbeeld van dergelijke, kan het gebruik van mysql vragen te vinden in de gegevens van een bekende waarde als database, eenvoudig en functioneel checkzipcode (美元值) {% zipcheck = "kies Count (*) van het% quot% database% quot%.% quot%.% quot% =". Filter_var (mysql_real_escape_string (De waarde van de dollar), filter_sanitize_number_int). ""; mysql_query schrijven = ($zipcheck); als (schrijven = = 1) {} {terug waar; anders terug valse;}}, andere omschreven functies kan niet afhankelijk zijn van de waarden van de database, en kan worden gecontroleerd door een magische aanhalingstekens, Het creëren van strippen en en ontsnappen in de database van functionele schoon. ($string) {% detagged = strip_tags ($)); als (get_magic_quotes_gpc ()) {% Peel = stripslashes (detagged dollar) USD = ik ontsnappen.Sql_real_escape_string ($schillen);} {% = mysql_real_escape_string anders ontsnappen ($detagged);} terug te ontsnappen;}, de mogelijkheden zijn eindeloos, met name als je regelmatig, maar in de meeste gevallen PHP filter te bevorderen, moet het lukken., op Twitter ons volgen, of abonnementen op Nettuts+ RSS de dagelijkse training en ontwikkeling van de website feed meer artikelen.,,,
PHP
Previous:Het creëren van een PHP