Hvordan sjekke en streng for dårlig tegn i PHP

Det er mange tilfeller når en webutvikler trenger henne PHP-skript for å sjekke innkommende data for å sikre at den bruker gyldige tegn. Ikke bare passord og brukernavn hver har gyldige karakterkrav, men grunnleggende sikkerhet tilsier at en utbygger holde et våkent øye med innkommende data. For eksempel, i et skript som kaller terminal kommandoer, noen tegn som ">" og "|" har spesielle betydninger på terminalen, og unnlatelse av å fjerne dem fra kode kan gi hackere med en enkel måte å kjøre skadelig kode på serveren. Nøkkelen til alle disse oppgavene er PHP "preg_match" kommandoen, som står for "PHP regulære uttrykk matching."

Bruksanvisning

1 Åpne en teksteditor eller din favoritt PHP Integrated Development Environment.

2 Lim inn følgende skript:

<? Php

$input = "This is some bad input for a user name because of all these odd characters: #@$#%$.";

$ Gyldig = preg_match ( '/ [a-za-Z0-9] /', $ input);

if ($ gyldig) echo "Gyldig brukernavn!" '

ellers echo "Ugyldig brukernavn!";

?>

Denne enkle skriptet bruker regex syntaks for å angi at et brukernavn må inneholde store og små bokstaver eller tall. Hakeparentesene i et uttrykk forteller PHP at noen av karakterene innenfor er akseptable. Hvis strengen bruker noe annet, for eksempel tegnsetting, vil "$ gyldig" variable settes til false og programmet vil skrive ut en melding til standard utgang la brukeren vite at hans brukernavnet er ugyldig.

3 Lagre arbeidet ditt.

Hint

  • Regulære uttrykk kan være et vanskelig tema å lære, men de er verktøyet for å utføre komplekse tekstsøk. Du kan lese mer om regulære uttrykk ved første ressursen.
  • Du kan spesifisere uakseptable tegn ved å legge til et utropstegn på oppskriften, som så: "[! Az]". Dette mønsteret vil forby små bokstaver.
  • Mange tegnsetting symboler har spesielle betydninger i regex. Spesielt er "." står for "alle tegn" i vanlig uttrykk syntaks. For å spesifisere bokstavelig skilletegn som gyldig, må du prefiks dem med omvendt skråstrek, som så: "\".