SQL Injection. Indice. Introduzione. Informazioni sugli autori. Capire il problema. Metodologie di testing. I problemi piu` diffusi
|
|
- Valerio Marchetti
- 8 anni fa
- Visualizzazioni
Transcript
1 SQL Injection Indice Introduzione Informazioni sugli autori Capire il problema Metodologie di testing I problemi piu` diffusi Accessi non desiderati Visualizzare dati non accessibili Analisi delle query tramite l'introduzione di errori Advanced SELECT Injection INSERT Injection STORED PROCEDURES Injection Le feature e i problemi dei DBMS piu` diffusi Scrivere codice sicuro Configurare Linux Configurare Windows 2000 o XP Professional Esempi di codice vulnerabile PHP e PostgreSQL PHP e MySQL ASP e MDB
2 Introduzione L'evoluzione delle esigenze del pubblico internauta ha comportato l'introduzione di tecnologie dinamiche (creazione di contenuti "on demand") nei piu` disparati servizi offerti dal web. Sono sempre piu` numerosi i server, anche gratuiti, che offrono la possibilita` di elaborare script per la creazione di contenuti web e sempre piu` utenti stanno convertendo i propri siti statici in vere e proprie applicazioni residenti sul web. Tali applicazioni utilizzano, nella maggioranza dei casi, dati provenienti dall'utente ed introducono quindi la possibilita` di modifica arbitraria delle variabili utilizzate dallo script, rendendo cosi` possibile l'insorgere di vulnerabilita` sfruttabili da remoto. In questo paper analizzeremo una fra le piu` diffuse vulnerabilita` delle applicazioni web-related: la vulnerabilita` da SQL Injection. Informazioni sugli autori Eduard <Master^Shadow> Roccatello studia Ingegneria Informatica presso l'universita` di Padova. Si occupa di programmazione e di amministrazione di rete con un occhio di riguardo alle problematiche di sicurezza su sistemi unixlike. Aspinall studente in Informatica e Amministratore di Sistema, si interessa di sviluppo e sicurezza in ambiente UNIX. Sono entrambi membri di S.P.I.N.E. Group ( Capire il problema La maggior parte delle applicazioni web vengono realizzate interfacciando l'applicazione stessa ad un server DBMS ed interagiscono con tali server tramite l'utilizzo del linguaggio standard SQL. SQL Injection e` una tecnica di exploiting delle web application che utilizzano dati provenienti dai client nelle query, senza controllare la presenza di caratteri potenzialmente pericolosi. Contrariamente a quello che si puo` pensare, questo tipo di vulnerabilita` e` molto diffusa e tale diffusione e` spesso dovuta alla mancanza di professionalita` di molti programmatori, spesso improvvisati, e alla mancanza di solide basi di programmazione sicura. Metodologie di testing Controllare le applicazioni per trovare eventuali vulnerabilita`
3 dovute all'sql Injection potrebbe essere molto complesso ma ci sono casi dove la ricerca di script potenzialmente vulnerabili e` molto semplice. Se, ad esempio, l'aggiunta di un apice in un form ritorna una pagina bianca o piena di errori riportati dal server DBMS siamo gia` ad un buon punto di partenza per quanto comporta la ricerca delle vulnerabilita`. Un buon programmatore dovrebbe controllare l'input di ogni variabile e non pensare che l'utente, utilizzatore della web application, formatti correttamente le variabili. Ogni possibile campo dovrebbe essere testato per tutte le vulnerabilita` che potrebbero coinvolgerlo, in modo da evitare ripercussioni in tutto lo script, spesso legato ad altri. Un buon metodo di controllo delle applicazioni web potrebbe essere quello di inserire in ogni campo una comando tipico di SQL preceduto da un apice, cercando cosi` eventuali problemi sulle singole variabili. Dopo aver provato i campi uno alla volta potrebbe essere utile riempire il form con dati formalmente corretti e ripetere la procedura "apice+comando" per ogni campo, mantenendo formalmente corretti gli altri campi. Ipotizziamo di passare ad uno script questi parametri formalmente corretti: script.php?nome=mario&cognome=rossi& =mariorossi@provider.ext Lo script funziona alla perfezione. Proviamo ora a modificare la stringa con un apice nel parametro "nome": script.php?nome='mario&cognome=rossi& =mariorossi@provider.ext Ipotizzando che lo script sia vulnerabile, siamo andati a modificare i parametri inviati al server DBMS dalla query, modificandone strutturalmente la sintassi (ricordo che l'apice (') e` un operatore SQL). Cosa potrebbe accadere utilizzando una stringa di parametri come quella proposta dall'esempio? I risultati potrebbero essere molteplici: dalla semplice pagina bianca ai piu` disparati errori provenienti dal server DBMS. Potrebbe riportare l'errore che gli altri paramentri non sono stati inseriti o addirittura mostrare dati che non dovrebbero essere visualizzati con quella query. Dopo aver trovato una possibile vulnerabilita` da SQL Injection, la parte piu` importante e` l'interpretazione degli errori. Se l'errore viene generato del server DBMS siamo sicuramente davanti ad una vulnerabilita` ad SQL Injection ma gli errori spesso sono tutt'altro che ovvi. Controlliamo sempre gli errori che si riferiscono ad ODBC, alla sintassi, al server SQL. Bisogna inoltre prestare attenzione alle piu` minimali modifiche della pagina, segno di SQL Injection Exploiting, poiche` molti programmatori possono nascondere le informazioni mettendo, ad
4 esempio, eventuali errori negli header del documento HTML e non mostrandone traccia nel body, la parte visualizzata dal browser. Non bisogna fermarsi all'analisi della singola pagina colpita da SQL Injection ma e` buona abitudine seguire i link presenti nella pagina, alla ricerca di eventuali ripercussioni sull'intera applicazione ed e` importante seguire anche eventuali redirect verso una pagina di errore predefinita, spesso preceduta da una schermata di errore propria del database. I problemi piu` diffusi Passiamo ora all'analisi dei piu` diffusi problemi di sicurezza dovuti alla vulnerabilita` da SQL Injection. Accessi non desiderati L'autenticazione delle web application e` spesso delegata ad uno script di login che ha il compito di processare la coppia login/password proveniente dal client e di confrontarla con le coppie presenti nel database. In caso di corrispondenza lo script settera` gli appositi flag per consentire il nostro accesso o, nel caso opposto, ci vietera` l'accesso. Consideriamo il seguente codice PHP: $user = $_GET['nome']; $passwd = $_GET['password']; $query = mysql_query( SELECT * FROM utenti WHERE user='$user' AND password='$passwd' ); if (mysql_num_rows($query) == 0) { $logged = 0; } else { $logged = 1; } Questo breve script prende i dati dalla querystring e li mette nella query senza controllare la presenza di eventuali caratteri pericolosi. Ipotizziamo di modificare entrambi gli argomenti passati allo script in "' OR ''='" e di far processare la pagina al server. La parte condizionale della query passata al server DBMS (in questo caso MySQL) diventa:... WHERE user='' OR ''='' AND passwd='' OR ''='' Come potrete ben capire entrambe queste condizioni sono sempre verificate e mysql_num_rows() restituira` un valore sicuramente diverso da zero (se la tabella contiene dati) consentendo cose` il login a qualsiasi persona a conoscenza di questo problema.
5 Visualizzare dati non accessibili Il mancato parsing dei parametri per caratteri maligni ha introdotto la possibilita` di editare, a piacimento dell'attaccante, la query verso il database. Abbiamo appena visto che e` possibile entrare con il massimo dei privilegi in un'applicazione web ma potremmo decidere di accedere a dati non direttamente accessibili dall'applicazione stessa. Lo standard SQL permette la creazione di SELECT multiple tramite il comando UNION e tale fatto puo` essere sfruttato per gli scopi dell'attaccante. Prendiamo in esame la seguente query: SELECT nome FROM users WHERE paese='$var' La variabile $var dovrebbe contenere il paese di provenienza degli utenti, dei quali stiamo cercando il nome ma, su di essa, non viene fatto nessun controllo ed e` quindi possibile scrivere codice SQL direttamente nella variabile. Nel nostro caso $var conterra` ' UNION ALL SELECT nome, passwd FROM users ''=' Vediamo il contenuto della query una volta settata $var: SELECT nome FROM users WHERE paese='' UNION ALL SELECT nome, passwd FROM users WHERE ''='' Evidentemente la prima SELECT non restituira` nessun record (supponendo che nessun utente ha il campo paese vuoto) mentre la seconda SELECT e` incondizionata e restituira` tutte le coppie nome/password. Il problema e` quello della visualizzazione dei dati: i dati ora sono stati estratti dal database ma l'applicazione considera solo il campo "nome" e non "password". Fortunatamente (!) il linguaggio SQL permette l'aliasing dei campi tramite il comando AS che puo` essere sfruttato per fare l'output dei dati non visualizzabili ordinariamente. Analisi delle query tramite l'introduzione di errori Molti server web restituiscono parte delle query in caso di errore. Normalmente questa funzionalita` e` utile, anzi direi necessaria, durante il debugging delle applicazioni web ma puo` essere usata impropriamente per analizzare le query e quindi carpire informazioni sulla realizzazione di una web application vulnerabile da SQL Injection. E' sempre utile testare un'applicazione inserendo volutamente errori di sintassi nei campi che interagiscono con l'utente, magari utilizzando costrutti SQL incompleti come "valore'", "'",
6 "'valore", "' OR '", ";" e "0,1,2". Advanced SELECT Injection Non sempre le web application elaborano query semplici e lineari. Capita a volte che siano presenti istruzioni racchiuse da parentesi, selezione sulla base di wildcards e campi non direttamente modificabili. Iniettare codice sintatticamente corretto e funzionante all'interno di queste tipologie di query potrebbe richiedere l'utilizzo di piccoli accorgimenti, a volte non immediati. SELECT nome FROM utenti WHERE (paese='campovariabile') Estrapolare dati da una query di questo tipo non puo` essere fatto con il metodo visto nelle pagine precedenti poiche` ci verrebbero segnalati diversi errori di sintassi. Occorre quindi modificare la query utilizzando un campo di questo genere ') UNION ALL SELECT campo FROM altratabella WHERE (''=' che, sostituita nella precedente, soddisfa perfettamente la sintassi SQL: SELECT nome FROM utenti WHERE (paese='') UNION ALL SELECT campo FROM altratabella WHERE (''='') Il trucco sta semplicemente nel completare parentesi e apici con piccoli trucchi in modo da far risultare la sintassi corretta e impostare correttamente le variabili booleane di confronto. Altra sintassi che potrebbe creare problemi e` quella dovuta al costrutto di confronto LIKE. SELECT nome FROM utenti WHERE nome LIKE '%campovariabile%' I simboli di percentuale funzionano nelle query SQL come wildcards e un eventuale completamento %% ritornerebbe tutti i record e quindi non sarebbe applicabile il costrutto UNION. Bisogna quindi pensare di inserire una stringa che non risulti in nessuno dei record, come potrebbe essere ad esempio "!?!". Un campo tipico per iniettare codice in questa query potrebbe essere il seguente:!?!%' UNION ALL SELECT campo FROM tab WHERE campo LIKE '% Sostituendo la query SQL diventa: SELECT nome FROM utenti WHERE nome LIKE '%!?!%' UNION ALL SELECT campo FROM altratabella WHERE campo LIKE '%%'
7 INSERT Injection Finora abbiamo considerato SQL Injection un problema legato al costrutto SELECT ma possiamo tranquillamente dire che questa vulnerabilita` si puo` estendere a qualsiasi query contentente input dell'utente non appositamente controllato. Un altro costrutto potenzialmente vulnerabile e` INSERT, necessario per l'inserimento di nuovi record all'interno di una tabella. Controllare la vulnerabilita` di una query di inserimento comporta le stesse tecniche viste per la query di selezione ma la forzatura di queste query potrebbe segnalarci all'amministratore dell'applicazione in quanto verrebbero riportate nei record parti di sintassi SQL. Iniettare codice nella query INSERT consente all'utente smaliziato di prelevare dati da un database e utilizzarli per la propria registrazione. Ad esempio e` possibile registrarsi al posto di un altro utente senza aver nessun dato su di lui. L'unico trucco necessario per assicurarsi dell'effettiva estrazione dei dati e` quella di visualizzarli (ad esempio tramite il pannello di controllo). Per portare a termine questo tipo di exploit il server DBMS deve supportare le SUBSELECT (ad esempio MySQL non supporta questa feature) e si devono conoscere i nomi di campi e tabella, ricavabili con un po' di reverse engineering. Ipotizziamo di avere la seguente query di inserimento: INSERT INTO tab (nome, cognome) VALUES ('campo1', 'campo2') Se al posto di campo1 inseriamo e al posto di campo2 inseriamo ' + SELECT nome FROM tab LIMIT 1 + ' ' + SELECT cognome FROM tab LIMIT 1 + ' otteniamo una perfetta replica di un record esistente all'interno del database poiche` la query in questione diventa: INSERT INTO tab (nome, cognome) VALUES ('' + SELECT nome FROM tab LIMIT 1 + '', '' + SELECT cognome FROM tab LIMIT 1 + '') Per cambiare l'utente da selezionare basta scorrere i record con l'offset offerto dall'istruzione LIMIT o, eventualmente, usare la sintassi NOT IN () per ciclare i record. STORED PROCEDURES Injection Exploitare le stored procedures e` generalmente molto piu`
8 semplice che agire sul costrutto SELECT. Le stored procedures sono parti di codice SQL richiamabili nei costrutti SQL tramite l'utilizzo di EXEC e sono praticamente degli script batch, atti ad effettuare operazioni direttamente all'interno del server DBMS. Hanno la particolarita` di essere abbastanza veloci e sono molto utilizzate per le operazioni transizionali. Non tutti i server DBMS permettono l'esecuzione delle stored procedures e, per richiamare l'esecuzione delle stesse, e` necessario che lo stesso server permetta l'utilizzo di statement multipli (istruzioni SQL distinte separate da un punto e virgola). Diversi server DBMS hanno comunque queste feature e possiedono, inoltre, diverse Stored Procedures predefinite, molte delle quali possono compiere operazioni molto interessanti per un attaccante. Esaminiamo la vulnerabilita` piu` evidente nel server DBMS di MicroSoft, MS SQL Server. Tale server attiva di default innumerevoli stored procedures, fra le quali troviamo xp_cmdshell ovvero un frontend per l'interprete dei comandi dei sistemi basati su kernel NT. Il server in questione supporta statement multipli e basta quindi una qualsiasi vulnerabilita` da SQL Injection per accedere al sistema con i permessi del server SQL. Consideriamo la seguente query: SELECT * FROM tab WHERE nome='campovariabile' Terminando il primo costrutto con un nome arbitrario ed applicando la sintassi di EXEC sulla procedura xp_cmdshell otteniamo la sequente query: SELECT * FROM tab WHERE nome='ed'; EXEC master.dbo.xp_cmdshell 'cmd.exe comando' Al posto di "comando" possiamo immettere qualsiasi stringa di comando interpretabile dalla shell dei sistemi NT ovvero il sistema e` in balia dei nostri comandi. Ovviamente il sistema server SQL di Microsoft non e` l'unico ad offrire stored procedures predefinite ma e` stato preso in considerazione per la gravita` della situazione che combinata con errori di programmazione web permette l'accesso a persone non desiderate. E' quindi bene disabilitare, o rimuovere, le stored procedures non necessarie al corretto funzionamento del server e assicurarsi che i permessi sulle parti vitali del sistema siano piu` restrittivi possibile. Le feature e i problemi dei DBMS piu` diffusi MySQL Supporta 'INTO OUTFILE' Supporta 'UNION' (dalla versione 4.x)
9 Spesso gira come "root" Molti moduli e librerie non supportano statement multipli Oracle Supporta le SubSelect Supporta 'UNION' Supporta le stored procedures Non supporta statement multipli Molte stored procedures preimpostate, alcune delle quali pericolose DB2 Supporta le SubSelect Supporta 'UNION' Supporta le stored procedures Non supporta statement multipli Postgres Supporta 'COPY' se fatto girare come superutente Supporta le SubSelect Supporta 'UNION' Supporta le stored procedures Supporta gli statement multipli MS SQL Server Supporta le SubSelect Supporta 'UNION' Supporta le stored procedures Supporta gli statement multipli Molte store procedures preimpostate sono pericolose Scrivere codice sicuro Ogni web application che si rispetti deve seguire piccole norme di programmazione per elevare la sicurezza al massimo possibile. Se l'applicazione riceve input dall'utente questo deve essere processato appropriatamente in modo da escludere eventuali caratteri maligni, che potrebbero interferire con le query previste dai programmatori. E' quindi necessario lasciar passare solo i caratteri necessari e filtrare tutti gli indesiderati tramite l'utilizzo di parser appositi (magari una regular expression ben congengnata). Ad esempio per lasciar passare solo i caratteri alfabetici la regexp seguente e` l'ideale: s/[^a-za-z]//g mentre per far passare i soli numeri si puo` applicare: s/[^0-9]//g Lasciare solo i caratteri alfanumerici e` quasi sempre un'ottima soluzione al nostro problema ma puo` capitare di aver bisogno di altri tipi di caratteri. In questo caso e` bene sostituire ai caratteri la loro codifica nello standard UniCode o nello standard
10 HTML. Ovviamente e` sempre bene utilizzare il minimo numero possibile di caratteri non alfanumerici per evitare potenziali problemi di iniezione. Altra feature interessante per aumentare la sicurezza delle web application potrebbe essere l'individuazione di tentativi di iniezione del codice prima del passaggio a stored procedures e a query. All'interno delle stored procedures e` bene non creare le query dinamicamente ma cercare di mantenere fisso piu` codice possibile. Realizzare una procedura di questo tipo richiede la creazione di una procedura contentente la sola query statica ed il semplice passaggio delle variabili come parametri. Ad esempio: CREATE PROC nvarchar(255) AS SELECT nome, cognome, indirizzo, telefono FROM utenti WHERE nick RETURN La configurazione del server deve essere piu` restrittiva possibile e deve evitare la possibilita` di accedere liberamente a parti del sistema non normalmente disponibili. Disabilitare le stored procedure non necessarie agli utenti potrebbe essere la soluzione ai nostri problemi ma un'attenta policy di permessi potrebbe evitare la mutilazione eccessiva del server DBMS. Configurare Linux MySQL La versione scaricata è la seguente : mysql tar.gz Una volta scompattato diamo i seguenti comandi : #./configure --prefix=/usr # make # make install Lanciamo lo script mysql_install_db per generare i database iniziali e ora lanciamo il demone mysqld con il comando # mysql.server start Ricordatevi di settare i permessi, # chown -R root /usr/local/mysql non entriamo troppo nel dettaglio,se dovestre riscontrare dei problemi vi consigliamo di leggervi la documentazione ufficiale.
11 Una volta lasciato il demone in ascolto, possiamo settare la password per l'utente root di mysql: # mysqladmin -u root -p password Per testare il tutto connettiamoci al nostro database appena installato root@aspinazzo:/# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 to server version: log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> E` raccomandato connettersi al database non da root, quindi aggiungete un nuovo utente al database server. Consultate per scegliere i dovuti privilegi Apache Ora scarichiamo i sorgenti di apache e diamo i seguenti comandi : #./configure --prefix=/usr --sysconfdir=/etc/apache \ --enable-mods-shared=all --with-ssl --with-perl # make # make install root@aspinazzo:/# httpd -version Server version: Apache/ Server built: Aug :08:05 PHP Procuriamoci la versione e scompattiamola. Compiliamo ed installiamo con la seguente procedura: #./configure --prefix=/usr --with-apxs2 \ --enable-cli --with-config-file-path=/etc/apache/php.ini \ --enable-magic-quotes --with-openssl --with-zlib \ --enable-bcmath --with-bz2 --enable-calendar --with-jpeg \ --with-tiff --enable-exif --enable-ftp --with-gd --with-gmp \ --with-gettext --with-mysql --with-mysql-sock=/var/.../mysql.sock \ --with-ncurses --enable-shmop --enable-sockets --enable-sysvmsg \ --enable-sysvsem --enable--sysvshm --enable-zend-multibyte --withpear \ --enable-trans-sid # make # make install
12 Aggiungiamo le seguenti stringhe in httpd.conf LoadModule php4_module modules/libphp4.so AddType application/x-httpd-php.php.php3 AddType application/x-httpd-php-source.phps Dovremmo aver finito, ora riavviamo apache : # apachectl restart Creiamo un database e proviamo l'interazione tra php e mysql. # mysqladmin -u root create testdb -p (testdb è il db che useremo per per eseguire i test) Editiamo una pagina di test per provare il tutto: // test.php <? # Apertura connessione verso mysql $tmp_socket=mysql_connect("localhost", "user", "prova") or die("impossibile connettere a mysql: ".mysql_error()); echo '> Apertura del database effettuata.<br>'; # Seleziono il database di test mysql_selectdb("testdb"); echo '> Database \'testdb\' selezionato.<br>'; # Creo un record nella mia tabella di test $sql = "INSERT INTO testtb(testfield) VALUES('test')"; $result = mysql_query($sql); if (!$result) { die('impossibile aggiungere record alla tabella<br>'); } else { echo '> Record inserito con successo.<br>'; } # Recupero il record appena inserito $sql = "SELECT idkey, testfield FROM testtb"; $result = mysql_query($sql); if (!$result) { die('impossibile leggere record dalla tabella<br>'); } else { $record = mysql_fetch_array($result); echo '> Il valore contenuto nella tabella per il record con idkey '.$record['idkey'].' e` <'.$record['testfield'].
13 '><br>'; } # Elimino il record creato e chiudo la connessione a mysql $sql = "DELETE FROM testtb"; $result = mysql_query($sql); if (!$result) { die('impossibile cancellare record dalla tabella<br>'); } else { echo '> Record cancellato con successo.<br>'; } mysql_close($tmp_socket); echo '> Connessione con il database chiusa.<br>';?> // EOF Eseguiamo la pagina per verificare il corretto funzionamento: #lynx /test.php > Apertura del database effettuata. > Database 'testdb' selezionato. > Record inserito con successo. > Il valore contenuto nella tabella per il record con idkey 15 e` <test> > Record cancellato con successo. > Connessione con il database chiusa. Apache, MySQL e PHP sono correttamente installati e possiamo passare all'installazione di PostgreSQL. PostgreSQL PostgreSQL e` un RDBMS e fornisce il maggior supporto agli standard ANSI SQL per quanto riguarda il software opensource ma e` leggermente piu` difficile da gestire di MySQL. Ci sono essenzialmente due modi per installare PostgreSQL: utilizzare i binari o compilare il sorgente. Entrambi le soluzioni possono essere trovate su o nel sito della propria distribuzione Linux. Installare i binari e` molto semplice e puo` essere fatto con i tools della propria distribuzione. In questo articolo parleremo della compilazione dei sorgenti di PostgreSQL. Il primo passo da effettuare e` quello di creare un utente per il database, che noi chiameremo postgres, al quale assegneremo il gruppo postgres e la home directory /usr/local/pgsql. L'installazione di PostgreSQL e` stata effettuata su una macchina
14 Linux Slackware. Copiamo il tarball dei sorgenti postgresql tar.gz in /tmp e scompattiamolo con il comando tar: tar xzvf postgresql tar.gz Abbiamo ottenuto una nuova cartella contenente i sorgenti di PostgreSQL. Spostiamoci all'interno della cartella con: cd postgresql-7.3.4/src e cominciamo a configurare il Makefile per il nostro sistema:./configure Continuiamo la compilazione con: make Se tutto va per il meglio l'ultima riga restituita dal sistema dovrebbe essere All of PostgreSQL is successfully made. Ready to install. Prima di procedere all'installazione cambiamo il nostro utente nel nostro utente postgres con su postgres e diamo il via all'installazione make install Se ci dovessero essere problemi effettuando l'installazione dall'utente postgres, e` necessario provare utilizzando il superuser root e poi cambiare il possessore dei file con il comando chown in questo modo: cd /usr/local chown -R postgres.postgres pgsql Abbiamo bisogno di informare il sistema che le librerie di pgsql sono installate. Aggiorniamo il file /etc/ld.so.conf aggiungendo la riga /usr/local/pgsql/lib e lanciando il comando /sbin/ldconfig Abbiamo quasi terminato. Dobbiamo impostare il database iniziale di PostgreSQL. Come utente postgres lanciamo il comando: /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data Facciamo partire postgres utilizzando il seguente script: su -c '/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >> /usr/local/pgsql/logs/server.log 2>&1' postgres & Abbiamo appena terminato l'installazione di PostgreSQL, non ci resta che configurare i file di configurazione che troverete nella directory /usr/local/pgsql/data/. Apriamo il file postgresql.conf con un editor di testo e settiamo la seguente opzione a true: tcpip_socket = true
15
16 Configurare Windows 2000 o XP Professional Come tutti gli applicativi sotto Microsoft Windows l'installazione del server web richiede poco tempo e pochi click. Si rivela quindi alla portata di tutti. La prima cosa da fare e` l'apertura del Pannello di Controllo e la selezione dell'icona Installazione Applicazioni. Una volta aperta la finestra di dialogo dobbiamo selezionare Aggiungi componenti di Windows ed aggiungere Internet Information Services (IIS) come da figura: Vi verra` richiesto il cd di installazione e terminata la procedura il software sara` installato sul vostro disco fisso. Procediamo ad una piccola configurazione tornando nel Pannello di Controllo, aprendo Strumenti di Amministrazione e cliccando su Internet Information Services. Apparira` la finestra in figura:
17 Apriamo il menu della figura cliccando con il tasto destro su Sito Web Predefinito e selezioniamo Proprieta` dal menu a scomparsa: apparira` la seguente finestra di dialogo. Configuriamo la home directory impostando il Percorso Locale attualmente impostato su c:\inetpub\wwwroot
18 Esempi di codice vulnerabile PHP e PostgreSQL Per i nostri test avremo bisogno di un database dove inserire le nostre tabelle. Per fare cio` logghiamoci nel sistema come utente postgres: su postgres e utilizziamo il comando: createdb nomedatabase Per le nostre prove chiamaremo il database testdb Se non l'abbiamo gia` fatto e` bene crearsi un utente per lavorare al database senza loggarsi come postgres. Io ho utilizzato il mio stesso nomeutente in modo da non usare flag durante la connessione al database da console. Il comando da utilizzare e`: createuser nomeutente Ora abbiamo accesso al server DBMS. Entriamo con le credenziali dell'utente appena creato e interfacciamoci al database test digitando il comando: psql testdb Abbiamo appena cominciato una sessione di comunicazione con il database test contenuto nel server PostgreSQL. Il nostro nuovo utente puo` tranquillamente entrare da locale ma non puo` entrare da una connessione esterna. Abbiamo quindi la necessita` di modificare il file di configurazione pg_hba.conf situato nella directory 'data' di pgsql. Io ho inserito le seguenti righe di configurazione che vanno bene per un server locale monoutente ma certo non per un server remoto. local all all password utenti host all all password utenti host all all password utenti Queste regole impostano Postgres in modo da richiede una password per l'accesso e, dopo tale autentificazione, il DBMS non ci dara` limitazioni se non quelle impostate al momento della creazione dell'utente. La dicitura password utenti dice a postgres di richiedere una password, imagazzinata in un file chiamato 'utenti' nella directory 'data' della home del server. Tale file ha la seguente struttura: nomeutente:passwordinchiaro Le password sono in chiaro quindi solo postgres deve poterci accedere.
19 Durante le nostre prove avremo bisogno essenziamente di due tabelle, create ad hoc per focalizzare l'attenzione sulla problematica, e alcuni dati fittizi. Creiamo la prima tabella nominativi tramite console: CREATE TABLE nominativi (nome VARCHAR(30), cognome VARCHAR(50)); ed inseriamo i seguenti dati: INSERT INTO nominativi (nome, cognome) VALUES ('mario', 'bianchi'); INSERT INTO nominativi (nome, cognome) VALUES ('giacomo', 'rossi'); INSERT INTO nominativi (nome, cognome) VALUES ('beppe', 'verdi'); INSERT INTO nominativi (nome, cognome) VALUES ('maria', 'bianchi'); Creiamo una seconda tabella lavoro : CREATE TABLE lavoro (ruolo VARCHAR(30), specializzazione VARCHAR(50)); ed inseriamo i dati: INSERT INTO lavoro (ruolo, specializzazione) VALUES ('ingegnere', 'supervisione'); INSERT INTO lavoro (ruolo, specializzazione) VALUES ('informatico', 'programmatore'); INSERT INTO lavoro (ruolo, specializzazione) VALUES ('manager', 'organizzazione'); INSERT INTO lavoro (ruolo, specializzazione) VALUES ('perito', 'tecnico'); Ora siamo pronti a lavorare lato scripting per mostrare la pericolosita` delle SQL Injection. Prepariamo due pagine: index.html e sql.php index.html contiene il seguente codice html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN " <html> <head> <title>sql Injection</title> <meta http-equiv="content-type" content="text/html; charset=utf- 8"> </head> <body> <form action="sql.php" method="post"> <input type="text" name="query"><input type="submit"> </form>
20 </body> </html> sql.php contiene il seguente codice php: <? $conn = pg_connect('dbname=testdb user=utente password=password'); $text = ''; if (get_magic_quotes_gpc() == 1) { // GPC attivate $text = stripslashes($_post['query']); } else { $text = $_POST['query']; } $query = pg_query($conn, 'SELECT * FROM nominativi WHERE nome=\''.$text.'\''); while ($row = pg_fetch_array($query)) { print $row['nome'].' '.$row['cognome']."<br>\n"; } pg_free_result($query); pg_close($conn);?> Il codice php e` stato strutturato il modo tale da funzionare su qualsiasi tipo di php, con e senza magic quotes. Se noi apriamo con un browser index.html ed inseriamo uno dei nomi che abbiamo precedentemente inserito (ad esempio 'mario') otteniamo la voce contenente il suo nome e il suo cognome come ci aspettiamo ma proviamo ad inserire un apice ('): Warning: pg_query() query failed: ERROR: parser: unterminated quoted string at or near "'''" at character 37 in / home/apache/www/sql/sql.php on line 12 Warning: pg_fetch_array(): supplied argument is not a valid PostgreSQL result resource in /home/apache/www/sql/sql.php on line 13 Warning: pg_free_result(): supplied argument is not a valid PostgreSQL result resource in /home/apache/www/sql/sql.php on line 16 Come era nostra intenzione mostrare, il codice e` vulnerabile. Questa enorme falla permette l'esecuzione di query arbitrarie al nostro database e a tutti i database ai quali abbiamo accesso. Abbiamo volutamente inserito due tabelle nel database per fare le prove con lo statement UNION. La sintassi UNION ci permette di unire piu` query SELECT in una e in questo caso puo` essere utilizzata per visualizzare dati ai quali non avremmo accesso. Il nostro scopo e` quello di evitare la visualizzazione dei dati
MySQL Database Management System
MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare
DettagliSPECIALE SQL INJECTION
INDICE SPECIALE SQL INJECTION Difficoltà: INTERMEDIA SQL INJECTION (INTRODUZIONE).pag.1 LA TECNICA..pag.1 TESTING pag.2 I PROBLEMI PIÙ DIFFUSI..pag.3 - ACCESSI NON DESIDERATI pag.3 - VISUALIZZARE DATI
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliBASI DI DATI http://www.diee.unica.it/~giacinto/bd. Cos è il PHP. Cos è il PHP. Esercitazione su PHP & MySQL
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Contatti BASI DI DATI http://www.diee.unica.it/~giacinto/bd Esercitazione su PHP & MySQL! Roberto Tronci! e-mail: roberto.tronci@diee.unica.it!
DettagliLaboratorio di Sistemi Programmare in Php con NetBeans Php. Programmare in Php con Xampp e NetBeans IDE
Programmare in Php con Xampp e NetBeans IDE NetBeans è un IDE ben noto ai programmatori Java. Con esso si possono infatti costruire applicazioni desktop professionali dotate di interfaccia grafica, applicazioni
DettagliData Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliModulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress
Copyright Andrea Giavara wppratico.com Modulo 4 Il pannello amministrativo dell'hosting e il database per Wordpress 1. Il pannello amministrativo 2. I dati importanti 3. Creare il database - Cpanel - Plesk
DettagliInstallazione & Configurazione Php e MySQL su Mac Os X. Php
Installazione & Configurazione Php e MySQL su Mac Os X Php PHP è un linguaggio di scripting interpretato, con licenza Open Source, originariamente concepito per la realizzazione di pagine web dinamiche.
DettagliLA GESTIONE DELLE VISITE CLIENTI VIA WEB
LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici
DettagliApache 2, PHP5, MySQL 5
Installazione di Apache 2, PHP5, MySQL 5 Corso Interazione Uomo Macchina AA 2005/2006 Installazione e Versioni Considerazione le versioni più recenti dei vari software così da poterne sperimentare le caratteristiche
DettagliXTOTEM offline sul proprio PC
Pagina 1 XTOTEM offline sul proprio PC Sommario XTOTEM offline sul proprio PC...1 Introduzione...2 1. Installare IIS...3 2. Installare un programma FTP...5 Installazione di Filezilla...5 Sistema di protezione
DettagliAmministrazione dominio
Installatore LAN Progetto per le classi V del corso di Informatica Amministrazione dominio 20/01/08 Installatore LAN - Prof.Marco Marchisotti 1 Configurazione guidata 20/01/08 Installatore LAN - Prof.Marco
DettagliFile, Modifica, Visualizza, Strumenti, Messaggio
Guida installare account in Outlook Express Introduzione Questa guida riguarda di sicuro uno dei programmi maggiormente usati oggi: il client di posta elettronica. Tutti, ormai, siamo abituati a ricevere
DettagliProgetto di Ingegneria del Software 2. SWIMv2
Progetto di Ingegneria del Software 2 2012/2013 SWIMv2 Guida di installazione Docente: Prof. Luca Mottola Davide Brambilla Antonio Caputo Paolo Caputo 1 Introduzione La piattaforma è stata sviluppata come
DettagliLa gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net. di Emanuele Mattei (emanuele.mattei[at]email.
La gestione documentale con il programma Filenet ed il suo utilizzo tramite la tecnologia.net di Emanuele Mattei (emanuele.mattei[at]email.it) Introduzione In questa serie di articoli, vedremo come utilizzare
DettagliIstruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)
Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza
DettagliISTRUZIONI PER L INSTALLAZIONE DI MINGW
ISTRUZIONI PER L INSTALLAZIONE DI MINGW Prima di iniziare la procedura di installazione di MinGW dobbiamo dire che il presente software è un compilatore C che non possiede un ambiente di programmazione.
DettagliCon accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.
Tecnologie informatiche ACCESSO REMOTO CON WINDOWS Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica. Un esempio di tale servizio
DettagliGateManager. 1 Indice. tecnico@gate-manager.it
1 Indice 1 Indice... 1 2 Introduzione... 2 3 Cosa vi serve per cominciare... 2 4 La Console di amministrazione... 2 5 Avviare la Console di amministrazione... 3 6 Come connettersi alla Console... 3 7 Creare
DettagliCorso di PHP. Prerequisiti. 1 - Introduzione
Corso di PHP 1 - Introduzione 1 Prerequisiti Conoscenza HTML Principi di programmazione web Saper progettare un algoritmo Saper usare un sistema operativo Compilazione, link, esecuzione di programmi Conoscere
DettagliIl web server Apache Lezione n. 3. Introduzione
Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar
Dettagli1) Il client(browser utilizzato) invia al server i dati inseriti dall utente. Server
2) Il Server richiama l'interprete PHP il quale esegue i comandi contenuti nel file.php specificato nell'attributo action del tag form creando un file HTML sulla base dei dati inviati dall utente 1) Il
DettagliCostruzione di Sit Web con PHP e MySQL. Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query
Costruzione di Sit Web con PHP e MySQL Lezione 7 - Esercitazione - Introduzione a MySQL: le tabelle, i tpi di dato, le query Esercitazione In questa lezione si farà insieme una seconda esercitazione che
DettagliGuida Joomla. di: Alessandro Rossi, Flavio Copes
Guida Joomla di: Alessandro Rossi, Flavio Copes Grafica e template 1. 15. La grafica e i template Personalizzare l'aspetto del sito aggiungendo nuovi template e customizzandoli 2. 16. Personalizzare il
Dettagli--- PREMESSE INTRODUZIONE. .:luxx:.
SQL INJECTION --- SICUREZZA.:luxx:. PREMESSE Questa guida accenna ad alcuni metodi di SQL injection e si sofferma sulla prevenzione di tali attacchi, per comprendere al meglio il testo è necessaria una
DettagliChe cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo
Creazione di moduli Creazione di moduli Che cos'è un modulo? Un elenco di domande accompagnato da aree in cui è possibile scrivere le risposte, selezionare opzioni. Il modulo di un sito Web viene utilizzato
DettagliMySQL Database Management System
MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form
DettagliMac Application Manager 1.3 (SOLO PER TIGER)
Mac Application Manager 1.3 (SOLO PER TIGER) MacApplicationManager ha lo scopo di raccogliere in maniera centralizzata le informazioni piu salienti dei nostri Mac in rete e di associare a ciascun Mac i
DettagliSOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE
SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE S O. S E. B I. P R O D O T T I E S E R V I Z I P E R I B E N I C U L T U R A L I So.Se.Bi. s.r.l. - via dell Artigianato, 9-09122 Cagliari Tel. 070 / 2110311
DettagliACTIVE SERVICE PAGES E DATABASE: tecnologia ADO
ACTIVE SERVICE PAGES E DATABASE: tecnologia ADO CARICARE DATI IN UNA TABELLA DA UN FORM Per utilizzare il Database nel Web, è necessario essere collegati al Db stesso, per far ciò, si utilizzano gli ADO
DettagliLezione II: Web server e ambiente di lavoro
Lezione II: Web server e ambiente di lavoro In questa lezione, in laboratorio, si mostrerà quali sono i passi necessari per creare ed eseguire una pagina ASP. Brevemente, verrà fatto anche vedere, come
DettagliFPf per Windows 3.1. Guida all uso
FPf per Windows 3.1 Guida all uso 3 Configurazione di una rete locale Versione 1.0 del 18/05/2004 Guida 03 ver 02.doc Pagina 1 Scenario di riferimento In figura è mostrata una possibile soluzione di rete
DettagliProgetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
DettagliNUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT.
NUOVA PROCEDURA COPIA ED INCOLLA PER L INSERIMENTO DELLE CLASSIFICHE NEL SISTEMA INFORMATICO KSPORT. Con l utilizzo delle procedure di iscrizione on line la società organizzatrice ha a disposizione tutti
DettagliJoomla: Come installarlo e come usarlo. A cura di
Joomla: Come installarlo e come usarlo. A cura di In questa dispensa andremo a vedere come si installa joomla sul noto software xampp e come viene usato per creare siti web dinamici. Tecnol earn Firmato
DettagliLaboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013
Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013 Architettura di una applicazione Web Browser Web HTTP Server Web API Dati Presentation
DettagliConcetti fondamentali dei database database Cos'è un database Principali database
Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione
DettagliCERTIFICATI DIGITALI. Manuale Utente
CERTIFICATI DIGITALI Procedure di installazione, rimozione, archiviazione Manuale Utente versione 1.0 pag. 1 pag. 2 di30 Sommario CERTIFICATI DIGITALI...1 Manuale Utente...1 Sommario...2 Introduzione...3
DettagliGuida alla registrazione on-line di un DataLogger
NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso
DettagliCREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS
CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu
DettagliARCHIVIA PLUS VERSIONE SQL SERVER
Via Piemonte n. 6-6103 Marotta di Mondolfo PU tel. 021 960825 fax 021 9609 ARCHIVIA PLUS VERSIONE SQL SERVER Istruzioni per configurazione sql server e conversione degli archivi Versione n. 2011.09.29
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliGuida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta
Guida alla configurazione della posta elettronica dell Ateneo di Ferrara sui più comuni programmi di posta. Configurazione Account di posta dell Università di Ferrara con il Eudora email Eudora email può
DettagliQuesiti 6 e 7) - 9 - Creiamo il file query4.php su una piattaforma OPEN SOURCE usando in linguaggio PHP ospitato su un webserver APACHE per interrogare un database MYSQL. Tale file verrà attivato cliccando
DettagliNOZIONI BASE SHELL E SCRIPT LINUX
NOZIONI BASE SHELL E SCRIPT LINUX Aggiornato al 11 gennaio 2006 Ermes ZANNONI (ermes@zannoni.to.it) (http://www.zannoni.to.it) Indice : 1. Introduzione 2. La Shell 2.1 Comandida Shell 2.1.1 File e directory
DettagliIndice generale. Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5
Guida a Joomla Indice generale Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5 Il BACK-END La gestione di un sito Joomla ha luogo attraverso il pannello di amministrazione
DettagliInstallazione LAMP. Installare un server lamp su Linux Ubuntu. Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale:
Installazione LAMP Installare un server lamp su Linux Ubuntu Per installare un server LAMP in Ubuntu come prima cosa apriamo il terminale: Poi copiamo ed incolliamo nel terminale il comando: sudo apt-get
DettagliFOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA
FOXWave 1.0.0 Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA Redatto da IZ1FAL Secco Marco Pagina 1 di 15 INDICE 1 1- INSTALLAZIONE... 3 1-1 Scaricare i pacchetti aggiornati... 3 1-2 Startup
DettagliQuesta guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara.
Piccolo Manuale Manuale Pt 1ª Registrazione (Login) Questa guida vi illustrerà i principali passaggi da eseguire per l'inserimento dei Bandi di gara. Riceverete una email contenente: Link della vostra
DettagliBackup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF
SPARC-CS-12/001 20 Gennaio 2012 Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF Abstract Vengono descritte le procedure di backup e restore dei dati memorizzati in un database di
DettagliManuale per la configurazione di AziendaSoft in rete
Manuale per la configurazione di AziendaSoft in rete Data del manuale: 7/5/2013 Aggiornamento del manuale: 2.0 del 10/2/2014 Immagini tratte da Windows 7 Versione di AziendaSoft 7 Sommario 1. Premessa...
DettagliProcedura per creare un archivio storico remoto nelle 24 ore giornaliere
Procedura per creare un archivio storico remoto nelle 24 ore giornaliere La seguente procedura ha lo scopo di illustrare il metodo di creazione di un archivio storico fotografico nell arco delle 24 ore
DettagliXampp. Valeriano Maysonnave - A.A. 2014/2015 -
Xampp Valeriano Maysonnave - A.A. 2014/2015-1 Introduzione...1 2 Installazione su Windows...1 3 Configurazione Apache...2 3.1 Accesso al file di configurazione httpd.conf...2 3.2 Il file httpd.conf...3
DettagliVisual basic base Lezione 01. L'ambiente di sviluppo
L'ambiente di sviluppo L'ambiente di sviluppo Visual basic è un linguaggio di programmazione Microsoft. In questo corso prenderemo in considerazione, l'ultima versione. net di questo linguaggio. Microsoft
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliGERARCHIE RICORSIVE - SQL SERVER 2008
GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER
DettagliLaboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012
Laboratorio Progettazione Web PHP e MySQL - Lezione 9 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Architettura di una applicazione Web Browser Web HTTP Server Web PHP Dati View Control
Dettagli. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi
Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare
DettagliJoomla! 2.5:Utenti e permessi - Il wiki di Joomla.it
Pagina 1 di 6 Joomla! 2.5:Utenti e permessi Da Il wiki di Joomla.it. Traduzione (http://cocoate.com/it/j25it/utenti) dal libro Joomla! 2.5 - Beginner's Guide (http://cocoate.com/j25/users-permissions)
DettagliRELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE
RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE CHIARA FERRARI 5I MERCURIO INDICE: 1. TRACCIA DEL PROBLEMA 2. SVILUPPO DEL PROGETTO (ENTITA, ATTRIBUTI) 3. SCHEMA E-R DELLA BASE DEI
DettagliSicurezza Informatica: Tecniche di SQL INJECTION
Sicurezza Informatica: Tecniche di SQL INJECTION Pietro Bongli Aprile 2004 N.B. L'informazione contenuta in queste pagine è divulgata per scopi puramente didattici e non per ni illegali. Structured Query
DettagliIl Web Server e il protocollo HTTP
Corso PHP Parte 2 Il Web Server e il protocollo HTTP E un programma sempre attivo che ascolta su una porta le richieste HTTP. All arrivo di una richiesta la esegue e restituisce il risultato al browser,
DettagliCTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.
CTVClient Il CTVClient è un programma per sistemi operativi Windows che permette la consultazione e la prenotazione delle ore dal tabellone elettronico del Circolo Tennis Valbisenzio. Per utilizzarlo è
DettagliINSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014)
INSTALLAZIONE NUOVO CLIENT TUTTOTEL (04 Novembre 2014) Se la Suite risulta già stata installata e quindi sono già presenti le configurazioni di seguito indicate, si prega di andare direttamente alla fine
Dettagli2 Fortino Lugi. Figura Errore. Nel documento non esiste testo dello stile specificato.-3 -- Finestra attiva o nuovo documento
1 Fortino Lugi STAMPA UNIONE OFFICE 2000 Vi sarà capitato sicuramente di ricevere lettere pubblicitarie indirizzate personalmente a voi; ovviamente quelle missive non sono state scritte a mano, ma utilizzando
DettagliIstruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo)
Istruzioni di installazione di IBM SPSS Modeler Text Analytics (utente singolo) Le seguenti istruzioni sono relative all installazione di IBM SPSS Modeler Text Analytics versione 15 mediante un licenza
DettagliISTRUZIONI PASSO PASSO PER CREARE UN SITO CON JOOMLA SU ALTERVISTA
ISTRUZIONI PASSO PASSO PER CREARE UN SITO CON JOOMLA SU ALTERVISTA REGISTRARSI AL SITO ALTERVISTA, PER OTTENERE SPAZIO WEB GRATUITO o Andare sul sito it.altervista.org o Nel riquadro al centro, scrivere
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliGuida Migrazione Posta Elettronica @uilpa.it. Operazioni da effettuare entro il 15 gennaio 2012
Guida Migrazione Posta Elettronica @uilpa.it Operazioni da effettuare entro il 15 gennaio 2012 CONTENUTI PREMESSA ACCESSO AL PROPRIO ACCOUNT SCHERMATA INIZIALE (Desktop) SALVATAGGIO CONTATTI (2) GESTIONE
Dettagli1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio
1.1 Installare un nuovo Client di Concept ed eseguire il primo avvio Per installare Concept su un nuovo Client è sufficiente collegarsi con Esplora Risorse al server di Concept (il tecnico che esegue l
DettagliZeroshell: VPN Host-to-Lan. Il sistema operativo multifunzionale. creato da Fulvio.Ricciardi@zeroshell.net. www.zeroshell.net
Zeroshell: VPN Host-to-Lan Il sistema operativo multifunzionale creato da Fulvio.Ricciardi@zeroshell.net www.zeroshell.net Assicurare la comunicazione fra un host ed una rete ( Autore: cristiancolombini@libero.it
DettagliGESGOLF SMS ONLINE. Manuale per l utente
GESGOLF SMS ONLINE Manuale per l utente Procedura di registrazione 1 Accesso al servizio 3 Personalizzazione della propria base dati 4 Gestione dei contatti 6 Ricerca dei contatti 6 Modifica di un nominativo
DettagliPHP e MySQL. Scripting server-side per accesso a DB MySQL
PHP e MySQL Scripting server-side per accesso a DB MySQL Connessione a un DB MySQL Prima di accedere ai dati è necessario creare una connessione con il DB In PHP si utilizza la funzione mysql_connect,
DettagliSOMMARIO... 3 INTRODUZIONE...
Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...
DettagliGUIDA UTENTE PRIMA NOTA SEMPLICE
GUIDA UTENTE PRIMA NOTA SEMPLICE (Vers. 2.0.0) Installazione... 2 Prima esecuzione... 5 Login... 6 Funzionalità... 7 Prima Nota... 8 Registrazione nuovo movimento... 10 Associazione di file all operazione...
DettagliBACKUP APPLIANCE. User guide Rev 1.0
BACKUP APPLIANCE User guide Rev 1.0 1.1 Connessione dell apparato... 2 1.2 Primo accesso all appliance... 2 1.3 Configurazione parametri di rete... 4 1.4 Configurazione Server di posta in uscita... 5 1.5
DettagliGuida all installazione di Easy
Guida all installazione di Easy ISTRUZIONI PER L INSTALLAZIONE DEL SOFTWARE EASY Requisiti di sistema Sistemi operativi supportati: Windows 2000 Service Pack 4; Windows Server 2003 SP2(consigliato per
DettagliIstruzioni per il server
Istruzioni per il server Alessandro Bugatti (alessandro.bugatti@istruzione.it) 9 dicembre 2007 Introduzione Questa breve dispensa riassume brevemente le procedure per connettersi al server che ci permetterà
DettagliProcedura di installazione di Xubuntu 8.10 su un PC
Procedura di installazione di Xubuntu 8.10 su un PC Bonacina Alberto Prima di tutto si deve inserire il Live CD nel computer, riavviare il computer e fare in modo che nelle preferenze del boot ci sia impostata
DettagliProcedura di abilitazione alla Rete di Lombardia Integrata
VPN Client Versione 5.0.07 - Release 2 Procedura di abilitazione alla Rete di Lombardia Integrata La presente procedura descrive la fase di installazione dell applicazione VPN Client versione 5.0.07 utilizzata
DettagliCOME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL)
COME FARE UNA RICHIESTA DI ASSISTENZA ON LINE (AOL) Cos è l AOL? Pag. 2 Come inviare una richiesta AOL Pag. 3 La risposta dell assistenza Pag. 5 Come rispondere ad una risposta AOL Pag. 7 Ulteriori nozioni
DettagliProgrammazione Web. Laboratorio 4: PHP e MySQL
Programmazione Web Laboratorio 4: PHP e MySQL Lavagna elettronica (I) Un unità aziendale di decision making opera per le decisioni di tipo consueto e ripetitivo tramite la procedura seguente: un qualsiasi
DettagliIMPORTANTE PER ESEGUIRE QUESTA INSTALLAZIONE NEI SISTEMI OPERATIVI NT-2000-XP, BISOGNA AVERE I PRIVILEGI AMMINISTRATIVI.
IMPORTANTE PER ESEGUIRE QUESTA INSTALLAZIONE NEI SISTEMI OPERATIVI NT-2000-XP, BISOGNA AVERE I PRIVILEGI AMMINISTRATIVI. Dopo aver selezionato SSClient506.exe sarà visibile la seguente finestra: Figura
DettagliAmministrare MySQL con PhpMyAdmin
Amministrare MySQL con PhpMyAdmin Come creare e cancellare i database MySQL Se godiamo di diritti particolari sul server (oppure lavoriamo su un db locale) PhpMyAdmin ha funzioni avanzate di creazione
DettagliSPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)
SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli) Le seguenti istruzioni sono relative all installazione di SPSS Statistics con licenza per utenti singoli. Una
Dettagli4.1 FAX EMAIL: Sollecito consegne via email (Nuova funzione)
- 36 - Manuale di Aggiornamento 4 MODULI AGGIUNTIVI 4.1 FAX EMAIL: Sollecito consegne via email (Nuova funzione) È stata realizzata una nuova funzione che permette di inviare un sollecito ai fornitori,
DettagliCorso basi di dati Installazione e gestione di PWS
Corso basi di dati Installazione e gestione di PWS Gianluca Di Tomassi Email: ditomass@dia.uniroma3.it Università di Roma Tre Cosa è PWS? Il Personal Web Server altro non è che una versione ridotta del
Dettagli1.0 GUIDA PER L UTENTE
1.0 GUIDA PER L UTENTE COMINCIA FACILE Una volta effettuato il login vi troverete nella pagina Amministrazione in cui potrete creare e modificare le vostre liste. Una lista è semplicemnte un contenitore
DettagliL amministratore di dominio
L amministratore di dominio Netbuilder consente ai suoi clienti di gestire autonomamente le caselle del proprio dominio nel rispetto dei vincoli contrattuali. Ciò è reso possibile dall esistenza di un
DettagliMANUALE D USO DELLA PIATTAFORMA ITCMS
MANUALE D USO DELLA PIATTAFORMA ITCMS MANULE D USO INDICE 1. INTRODUZIONE... 2 2. ACCEDERE ALLA GESTIONE DEI CONTENUTI... 3 3. GESTIONE DEI CONTENUTI DI TIPO TESTUALE... 4 3.1 Editor... 4 3.2 Import di
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliFate doppio click sul file con nome postgresql-8.0.msi e impostate le varie voci come riportato nelle immagini seguenti:
,QVWDOOD]LRQHGL'LVNL L installazione di Diski e composta di due parti: il back-end e il front-end. Il back-end e il database relazionale orientato agli oggetti PostgreSQL. PostgreSQL e disponibile in diverse
DettagliModulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...
Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...
DettagliLorenzo Sarti sarti@dii.unisi.it Materiale didattico http://www.dii.unisi.it/~ sarti
Lorenzo Sarti sarti@dii.unisi.it Materiale didattico http://www.dii.unisi.it/~ sarti Obiettivi esercitazioni Utilizzare nella pratica un DBMS Apprendere il linguaggio SQL Apprendere come si accede ad un
DettagliFile Server Resource Manager (FSRM)
File Server Resource Manager (FSRM) di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Introduzione FSRM, File Server Resource Manager, è un ruolo opzionale che può essere installato in Windows Server 2008 nel
DettagliDa: http://guide.aiutamici.com/guide?c1=7&c2=15&id=75084
Da: http://guide.aiutamici.com/guide?c1=7&c2=15&id=75084 Spazio web gratuito Per poter pubblicare il proprio sito su internet, si deve disporre di uno spazio web, se non ne abbiamo già uno lo dobbiamo
DettagliQuesto punto richiederebbe uno sviluppo molto articolato che però a mio avviso va al di là delle possibilità fornite al candidato dal tempo a disposizione. Mi limiterò quindi ad indicare dei criteri di
Dettagli