[D.E.I.]
   
D.E.I.
Dipartimento di Elettronica e Informatica
Università di Padova
   
[UNIVERSITA' DI PADOVA]

Anno Accademico 1997/98
RETI DI CALCOLATORI
Docente: Concettina Guerra



INTERROGAZIONE DI BASI DI DATI DAL WEB MEDIANTE L'INTERFACCIA CGI E IL DBMS POSTGRESQL

a cura di:
Riccardo Golia, Luca Sabaini e Silvia Genetti




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


[E-MAIL] ricky@dei.unipd.it