Come controllare una stringa di caratteri per Bad in PHP

November 27

Ci sono molti casi in cui uno sviluppatore web ha bisogno del suo script PHP per controllare i dati in entrata per assicurare che utilizza caratteri validi. Non solo le password e nomi utente ogni hanno requisiti di carattere validi, ma la sicurezza di base impone che uno sviluppatore di tenere un occhio vigile su dati in arrivo. Ad esempio, in uno script che chiama i comandi del terminale, alcuni caratteri come ">" e "|" hanno un significato speciale sul terminale, e il fallimento per togliere loro di codice in grado di fornire gli hacker con un modo semplice per eseguire codice dannoso sul server. La chiave di tutte queste attività è il comando di PHP "preg_match", che sta per "PHP corrispondenza di espressioni regolari."

istruzione

1 Aprire un editor di testo o il vostro preferito PHP ambiente di sviluppo integrato.

2 Incollare il seguente script:

<? Php

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

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

if ($ valido) echo "nome utente valido!" '

else echo "Nome utente non valido!";

?>

Questo semplice script utilizza la sintassi regex per specificare che un nome utente deve contenere lettere o numeri maiuscoli o minuscoli. Le parentesi quadre in una espressione dicono PHP che nessuno dei caratteri all'interno sono accettabili. Se la stringa utilizza qualsiasi altra cosa, come ad esempio la punteggiatura, il "$ valida" variabile sarà impostata su false e il programma stamperà un messaggio sullo standard output lasciando all'utente di sapere che il suo nome utente non è valido.

3 Salvare il lavoro.

Consigli e avvertenze

  • Le espressioni regolari può essere un argomento difficile da imparare, ma sono lo strumento di scelta per l'esecuzione complessa la ricerca di testo. Si può leggere di più su espressioni regolari alla prima risorsa.
  • È possibile specificare caratteri inaccettabili con l'aggiunta di un punto esclamativo al modello, in questo modo: "[! Az]". Questo modello vieterebbe lettere minuscole.
  • Molti simboli di punteggiatura hanno un significato speciale in espressioni regolari. In particolare, il "." sta per "qualsiasi carattere" nella sintassi delle espressioni regolari. Al fine di indicare i segni di punteggiatura letterali come valido, è necessario anteporre con il carattere backslash, in questo modo: "\".