SIMULAZIONE RETE INTERNET INTERNET SERVICE PROVIDER GRUPPO 2 COMMESSA – INFORMATICA GRANATA Corso Sicurezza su Reti II Prof. A. De Santis Anno Accademico 2006/2007
SPECIFICHE COMMESSA Implementazione sito Informatica Granata 1. Gestione anagrafica clienti 2. Gestione catalogo e listino (con pannello amministratori) 3. Gestione utenti amministratori 4. Carrello della spesa 5. Interfaccia col sistema di pagamento U.P. 6. Registrazione di almeno 30 utenti e catalogo di almeno 20 prodotti di diversa prezzatura
SOLUZIONE PROPOSTA Sito Web Informatica Granata: Interazione con Ufficiale Pagatore Interazione con Ufficiale Pagatore HTML & PHP HTML & PHP Interazione utente mediante form Interazione utente mediante form Connessioni ed operazioni sicure con SSL Connessioni ed operazioni sicure con SSL Utilizzo DBMS MySQL Utilizzo DBMS MySQL Transazioni SQL Transazioni SQL
IL NOSTRO LAVORO Creazione database SHOP ed interfaccia per accesso ai dati Creazione database SHOP ed interfaccia per accesso ai dati Utilizzo MySQL e PHP Utilizzo MySQL e PHP Suddivisione Lavoro: Suddivisione Lavoro: I. Barone– Creazione Database D. Laurino- Interazione Database Interazione e Collaborazione con Gruppo 3 Interazione e Collaborazione con Gruppo 3
DATABASE SHOP Contiene tutti i dati necessari allapplicazione Contiene tutti i dati necessari allapplicazione Composto da 5 tabelle: Composto da 5 tabelle: - C USTOMERS : cf,nome,indirizzo,uname,pwd,admin - O RDERS : cod,cliente*,totale,data,stato - P RODUCTS : cod,nome,descr,prezzo,qtà,foto - P ROD_ORD : prod*,ord*,qtà - T OKENS : id,token _ chiave primaria* chiave esterna
ISTRUZIONI SQL - ESEMPIO Creazione Tabella Customers DROP TABLE IF EXISTS 'Customers'; CREATE TABLE 'Customers' ( 'CF' varchar(16) NOT NULL, 'CF' varchar(16) NOT NULL, 'NAME' varchar(50) default NULL, 'NAME' varchar(50) default NULL, 'ADDRESS' varchar(100) default NULL, 'ADDRESS' varchar(100) default NULL, 'UNAME' varchar(20) default NULL, 'UNAME' varchar(20) default NULL, 'PASSWORD' varchar(8000) default NULL, 'PASSWORD' varchar(8000) default NULL, 'ADMINISTRATOR' enum('True','False') default 'False', 'ADMINISTRATOR' enum('True','False') default 'False', PRIMARY KEY ('CF') PRIMARY KEY ('CF'))
MYDBMANAGER Oggetto PHP Oggetto PHP Connessione gestita nel costruttore Connessione gestita nel costruttore Funzionalità/Query: Funzionalità/Query: - Login di Utenti ed Amministratori - Gestione Utenti con modifiche dati - Elenco Utenti e Dati Utente Specifico - Gestione Prodotti con modifiche dati - Catalogo Prodotti e Dati Prodotto Specifico - Gestione ed Elenco Ordini e Prodotti Ordinati - Gestione di Timeout e Conferma Ordini
MYDBMANAGER Funzioni PHP Gestione SQL Injection: Funzioni PHP Gestione SQL Injection: - addslashes per inserimento - stripslashes per reperimento Transazioni per evitare Denial of Service Transazioni per evitare Denial of Service Gestione connesioni sicure SSL/MYSQL Gestione connesioni sicure SSL/MYSQL
DIFFICOLTA INCONTRATE Creazione Modello E/R Creazione Modello E/R Gestione Transazioni : Lock,Start Transaction,Commit Gestione Transazioni : Lock,Start Transaction,Commit Connessione Sicura DB Connessione Sicura DB - mysql_connect(…,MYSQL_SSL_CLIENT) - malfunzionamento - soluzione : database presso Gruppo 3