Tutorial PHP - htmlspecialchars, htmlentities, strip_tags: Alcune funzioni PHP da utilizzare per difendersi dal Cross Site Scripting - XSS.

  WebSpazio.it | Tutorial PHP
Webspazio.it - Tutorial PHP
htmlspecialchars, htmlentities, strip_tags: Alcune funzioni PHP da utilizzare per difendersi dal Cross Site Scripting - XSS.


Obiettivo del tutorial: Mostrare l'importanza dell'utilizzo delle funzioni htmlspecialchars , htmlentities e strip_tags per scrivere codice non vulnerabile con attacchi di cross site scripting.

 

Nel tutorial PHP seguente vedremo quanto sia importante, quando si scrivono script che elaborano input dell'utente, convertire le stringhe di input inserite dall'utente in html.

Se si tralascia questo passaggio si è potenzialmente esposti al codice dannoso che l'utente potrebbe inserire attraverso la casella di input.
Guardate l'esempio seguente:

<?php
// Supponiamo che l'utente inserisca l'input
// contenuto nella seguente variabile.
  $input = '<script type="text/javascript">
alert("Attenzione input non controllato");
 </script>';

// se l'input non viene gestito correttamente 
// l'utente potrà eseguire codice arbitrario 
// da quella casella di input.
  echo htmlspecialchars($input) . '<br>';
  echo htmlentities($input);
// Le due funzioni sopra stampano l'input 
// dell'utente convertendolo prima in html.
// Quindi nessun codice dannoso inserito 
// dall'utente sarà eseguito.
  echo $input;
// Se non faccio nessun controllo il codice 
// sarà esposto ad attacchi XSS.

?>

Prova l'esempio

Notate che filtrando l'input con htmlspecialchars e htmlentities lo script si difende dagli attacchi di Cross Site Scripting. Se invece non si controlla l'input l'utente può fare in modo che lo script esegua del suo codice (dell'utente).

Come funzionano htmlspecialchars e htmlentities ?

htmlspecialchars() htmlspecialchars()
Questa funzione converte l'argomento in codice html. Ad esempio i caratteri "<" e ">" vengono convertiti in "<" e ">".

htmlentities() htmlentities()
Questa funzione funziona sostanzialmente come la precedente, ma con qualche variante. htmlentities usa le HTML entities per le conversioni di caratteri

per eliminare i caratteri html c'è un'altra interessante funzione:
strip_tags()
strip_tags() elimina i tag HML dalle stringhe che gli vengono passate come parametri.

<?php

  $input = 'caratteri in <b>Grassetto</b> 
      <script type="text/javascript">
alert("Attenzione input non controllato");
 </script>';

// Elimina i tag html
  echo strip_tags($input);
// Elimina i tag html lasciando
// quelli passati come parametro.
  echo strip_tags($input, '<b>');

?>

Prova l'esempio

In conclusione: In PHP è importanssimo controllare qualsiasi cosa l'utente inserisce nelle caselle di input.




  


Partner: sms gratisInviaresmsgratis.it si propone come punto di riferimento per gli utenti che cercano siti internet per inviare sms gratis.

      SMS Gratis

trading onlineGuidatradingonline.com propone una guida al trading online, azioni, mercati azionistici, finanza online, indizi di borsa, grafici indici azioni .

      Trading online

zoologiazoologia-animali.com propone una guida alla zoologia e animali, specie animali suddivise per categorie, guida scentifica animali ed esseri viventi del regno animale

       Zoologia

directory gratisYoweb.it è una directory ricca di categorie con siti selezionati da editori per trovare velocemente e gratis.

       Directory Gratis

Home | Computer & Internet | Sviluppare Sito Web | Promuovere Sito Web | Mappa del Sito | Altri Siti | Contatti

Copyright © webspazio.it
Designed by webspazio.it