Come Sanitizzare le stringhe in php

Per prevenire attacchi SQL o XSS è buona norma disinfettare i dati prima di inviarli al server, ad esempio in un database mysql.

-

Come si fa?

Ci sono svariati metodi per ovviare  questo problema, il primo è quello di utilizzare semplicemente le istruzioni MYSQLI o PDO prepare che ti consente di separare l'SQL e l'input dei dati, ma se devi semplicemente utilizzare semplici istruzioni PHP puoi utilizzare metodi come questo:

Sanificare i valori di una stringa: 

 function sanificaStringa($data)
{
     
    $data = trim($data); //rimuove gli spazi prima e dopo la stringa 
     
    $data = stripslashes($data); // rimuove gli slashes //
    
    $data=(filter_var($data, FILTER_SANITIZE_STRING));
    
    return $data;
}
 


Esempio:

$tuaStringa = "Ciao <script>alert('Visita il sito serreri.com')</script> qui";

$tuaStringa = sanificaStringa($tuaStringa);

echo $tuaStringa;

L'output generato verrà sanificato in questo modo : Ciao alert('Visita il sito serreri.com') qui

Gli sviluppatori del core PHP ci hanno reso la vita più facile con l'introdudione di due funzioni importanti per la prevenzione di situazioni potenzialmente dannose e sono 

  • filter_var ()
  • filter_input ().

Un altro possbile scenaro di convalida può essere applicato anche agli input email come ad esempio:

$email = 'tuaemail@gmail.com';
$emailSanitizzata = filter_var($email, FILTER_SANITIZE_EMAIL);

utilizzando il flag 

FILTER_SANITIZE_EMAIL

Questa funzione, quando si utilizza il flag nell'esempio, si assicura che il codice rimuova tutti i caratteri tranne lettere, cifre e i seguenti caratteri! # $% & '* + - =? _` {|} ~ @. [] . 

Per un completo utilizzo dei flag per filtrare e sanitizzare gli input visitate la pagina ufficiale


Php
 


Lascia un commento