Login
Libri
Home Argomenti Generali Sicurezza

Sicurezza

Share

Questa pagina descrive alcune "best practices" sulla sicurezza all'interno di applicazoni web, ed in dettaglio come si comporta CodeIgniter.

Sicurezza dell'URI

CodeIgniter è abbastanza restrittivo sui caratteri ammessi in una stringa URI per ridurre il più possibile la possibilità che dati malevoli vengano passate alle nostre applicazioni. Gli URIs possono contenere solo i seguenti caratteri:

  • Testo Alpha-numerico
  • Tilde: ~
  • Punto: .
  • Due Punti: :
  • Underscore: _
  • Dash: -

Informazioni GET, POST e COOKIE

I dati GET sono semplicemente rifiutati da CodeIgniter in quanto utilizza il sistema dei segmenti URI invece del tradizionale stringhe URL query (a meno che non si sia abilitata l'opzione delle stringhe query nel proprio file di configurazione). L'array GET globale è sconfigurate dalla classe di Input durante l'inizializzazione del sistema.

Register_globals

Durante l'inizializzazione del systema tutte le variabili globali sono sconfigurate eccetto quelle trovate negli array $_POST e $_COOKIES. La rutine di sconfigurazione produce gli stessi effetti di register_globals = off.

magic_quotes_runtime

La funzionalità magic_quotes_runtime è disattivata durante l'inizializzazione del systema, questo non rende necessaria la rimoszione degli slashes quando si recuperano i dati dal proprio database.

Best Practices

Prima di accettare qualunque dato all'interno della propria applicazione, siano essi passati attraverso un form via POST, dati COOKIE, dati URI, dait XML-RPC o informazioni provenienti da un server array, sei incoraggiato a seguire il seguente approccio:

  1. Filtrare i dati come se fossero contaminati.
  2. Validare le informazioni accertandosi del corretto tipo, lunghezza, dimensione, etc.(talvolta questo passaggio sostituisce il punto precedente).
  3. Escape i dati prima di salvarli nel proprio database.

Per supportarci in questo processo CodeIgniter predispone le seguenti funzioni:

  • XSS Filtering

    CodeIgniter accede grazie ad un filtro Cross Site Scripting. Questo filtro viene utilizzato per controllare codice Javascript malevolo all'interno dei propri dati, o altri tipi di codice che potrebbero attaccare i cookies o altre azioni malevoli. Il filtro XSS è descritto nell'apposita sezione.

  • Validare i dati

    CodeIgniter permette di essere assistiti nel validare, filtrare e preparare i propri dati grazie alla Classe di Validazione dei Form.

  • Escape tutte le informazioni prima di inserirle nel Databaseall data before database insertion

    Non si deve inserire mai nessun tipo di dato nel proprio database senza aver effettuato un loro escaping. Si rimanda alla sezione dove vengono discusse le queries per maggiori informazioni.

Nota: Per maggiori dettagli sulla sicurezza rimando al seguente articolo. (Davide)

Ultimo aggiornamento ( Giovedì 18 Novembre 2010 09:14 )