 | PRIMA PARTE - LO STANDARD CGI
|
| 1. | Introduzione |
| 1.1. | Overview |
| 1.2. | Specifiche |
| 2. | Dinamica di funzionamento |
| 3. | Passaggio dei parametri di ingresso (input data) |
| 3.1. | Parametri di sistema |
| 3.1.1. | Variabili ambientali |
| 3.2 | Parametri utente |
| 3.2.1. | Metodo GET |
| 3.2.2. | Metodo POST |
| 4. | L'esecuzione |
| 4.1. | Chiamata diretta |
| 4.2. | Isindex |
| 4.3. | Moduli HTML |
| 5. | Uscite prodotte (output data) |
| 5.1. | Il Protocollo HTTP (HyperText Transfer Protocol) |
| 5.2. | Headers nel documento di Response |
| 5.2.1. | Tipo di contenuto |
| 5.2.2. | Locazione del documento |
 | SECONDA PARTE - INTERROGAZIONE DI UNA BASE DI DATI DAL WEB
|
| 6. | Frontend e backend con Postgres |
| 6.1. | Architettura di Postgres |
| 6.2. | Comunicazione frontend / backend |
| 6.3. | Protocollo di comunicazione |
| 7. | I programmi realizzati |
| 7.1. | Introduzione |
| 7.2. | Dettagli realizzativi |
| 7.3. | Un esempio |
| 8. | Libpq: una libreria C di interfaccia per PostgreSQL |
| 8.1. | Introduzione |
| 8.2. | Variabili ambientali |
| 8.3. | Funzioni per la connessione alla base di dati |
| 8.4. | Funzioni di esecuzione di una query |
| 8.5. | Fast Path |
| 8.6. | Funzioni associate al comando COPY |
| 8.7. | Funzioni per l'autentificazione degli utenti |
| 8.8. | Avvertenza |
| 8.9. | Libpq-fe.h: il file sorgente |
 | TERZA PARTE - CGI E SICUREZZA
|
| 9. | Problematiche relative alla sicurezza nella programmazione di script CGI |
| 9.1. | Quali problemi? |
| 9.2. | Sicurezza del server Web |
| 9.2.1. | Sistemi operativi |
| 9.2.2. | Dove mettere gli script CGI? |
| 9.2.3. | Evitare Server Side Includes |
| 9.2.3.1. | Esecuzione di programmi esterni |
| 9.2.4. | Il server non deve essere mai attivo con i privilegi di root |
| 9.3. | Quale linguaggio di programmazione usare? |
| 9.4. | Scrivere programmi sicuri |
| 9.4.1. | Evitare di fornire troppe informazioni sul sistema |
| 9.4.2. | Mai fidarsi degli input forniti dal client |
| 9.4.2.1. | Non è possibile fissare una lunghezza massima del campo di input |
| 9.4.2.2. | %00 in QUERY_STRING |
| 9.4.2.3. | Mai passare input non "controllati" ad una shell |
| 9.4.3. | Pathname assoluti |
| 9.4.4. | Valori delle variabili nel form |
| 9.5. | Non usare la directory /tmp |
| 9.6. | POST oppure GET? |
 | RIFERIMENTI BIBLIOGRAFICI
|
| B.1. | Legenda |
| B.2. | Common Gateway Interface |
| B.3. | HyperText Transfer Protocol |
| B.4. | HyperText Markup Language |
| B.5. | Microsoft Windows NT |
| B.6. | Altro |
| B.7. | Internet Security Alerts |
| B.8. | General Security for Web Servers |
| B.9. | Firewalls |
| B.10. | Unix System Security |
| B.11. | The CGI Security FAQ |