Fondamenti di programmazione

Corso php a cura del prof. Pietro De Paolis

Sicurezza informatica

Il lavoro del programmatore è soggetto ad attacchi di altri esperti informatici, presenti sulla rete internet; questi esperti si chiamano anche hacker.

Individuare gli hacker non è semplice, sia perché sono delle persone straniere, sia perché un qualunque computer o smartphone può essere esso stesso un hacker, all'insaputa del suo possessore.

Ogni sito web è soggetto ad attacchi informatici; ogni sito può essere colpito; si dice vulnerabile un sito che non è abbastanza coperto contro questi attacchi; l'attacco informatico è detto anche minaccia informatica. Ogni sito va protetto dalle minacce informatiche.

Vediamo ora alcuni tipi di minacce e come difendersi da esse, onde eliminare alcune vulnerabilità conosciute.

1 - Cross-Site Scripting (XSS)

L'attacco Cross-Site Scripting, abbreviato XSS, consiste nell'inserire parole proibite in una pagina web che accetta dati in ingresso, mediante un form, cioè un modulo o una scheda da riempire con dati da parte dell'utente, cioè la persona che si collega al sito web; si dice lato cliente, cioè lato utente, il computer e lo smartphone che usiamo noi. Lato server è ciò che avviene nella applicazione web, subito dopo aver inviato i dati al server, cioè il computer che analizza i dati in ingresso, li elabora, cioè fa dei calcoli o dei confronti, e poi manda in uscita una risposta al computer o smartphone da cui è partita la richiesta, cioè all'utente che ha riempito il modulo.

Uno che attacca un sito può inserire, in un modulo che chiede il nome o il cognome, il seguente script in Javascript:

<script><alert();</script>

se il sito non è protetto da un attacco tipo XSS, può apparire un avviso del tipo:

bloccando l'applicazione fin quando non si clicca su OK.

Una prima protezione  lato utente, per proteggere la casella di testo di nome = contenuto del modulo di nome = uscita2, può essere la seguente:

 

function controlla(){

a100 =document.uscita2.contenuto.value;

// cerco parole vietate

vietate=/www|src|embed|<|http|img|script|alert/gi;

a1=a100.search(vietate);

if (a1>-1) {

parte=a100.slice(a1,a1+10);

alert ("Trovate parole proibite:\n"+parte);

return false;

};

return true;

}

listato di: modo1.txt

 

Ovviamente non basta. Vediamo di proteggere la casella di testo di nome = contenuto, lato server.

 

 

<?php

// controllo se il testo contiene parole proibite $vietate="/src|www|<|embed|img|http|script|alert/i"; if(preg_match($vietate,$contenuto)) {

print("Ho trovato delle parole non consentite!");

exit;

};

?>

listato di: modo2.txt

 

 

 

Corso di programmazione in PHP

 

Dizionario php

 

prof. Pietro De Paolis

Indice Scuola Elettrica - generico


Scuola Elettrica



 

Altre applicazioni


Mappa per tipo di scuola

 

Indice di tutte le pagine del sito


Guida per navigare


Richiesta informazioni


Scuola Elettrica