SPECIALE SQL INJECTION
|
|
- Enrico Greco
- 8 anni fa
- Visualizzazioni
Transcript
1 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 NON ACCESSIBILI.pag.4 - ANALISI DELLE QUERY TRAMITE L INTRODUZIONE DI ERRORI pag.5 - ADVANCED SELECT INJECTION pag.5 - INSERT INJECTION pag.6 - STORED PROCEDURES INJECTION.pag.7 - LE FEATURE E I PROBLEMI DEI DBMS PIÙ DIFFUSI pag.8 SCRIVERE CODICE SICURO.pag.8 COME PREVENIRE LE SQL INJECTION.pag.9 CONCLUSIONI pag.11
2 SQL INJECTION (INTRODUZIONE) Negli ultimi due anni, gli attacchi contro le applicazioni web sono aumentati a dismisura attirando, in qualche modo, l attenzione di tutto il mondo che gira intorno alla sicurezza informatica. La voglia di proteggersi, con il conseguente aumento dei fondi destinati al capitolo sicurezza, è un problema molto sentito da Comandi ed Enti, così come e in maniera ancora più maniacale da quei siti web che appartengono ad agenzie o a semplici industrie dove la tutela del segreto rientra nella lista delle priorità. Il compito del system administrator e di conseguenza del web master diventa sempre più un compito difficile da svolgere senza incorrere in qualche svista progettuale la quale potrebbe causare una falla nel sistema e diventare m un problema di cui se ne può ignorare l esistenza. La parvenza di sicurezza pubblicizzata da molte case specializzate nel settore, porta molte volte ad hardenizzare (mettere in sicurezza) solo alcuni aspetti del sistema, tralasciandone altri, uno di questi riguarda la protezione dei database relativi ai siti web. L evoluzione delle esigenze del pubblico internauta (neologismo per indicare un utente di INTERNET) ha comportato l introduzione di tecnologie dinamiche, tra le quali la creazione di contenuti on demand, ma sono ancora più disparati i servizi offerti al giorno d oggi dai siti web. Sono in forte aumento i server, che, anche a livello gratuito, offrono la possibilità di elaborare script per la creazione di contenuti web, senza dimenticare l indiscusso aumento degli utenti che stanno provvedendo a trasformare i propri siti statici in vere e proprie applicazioni residenti sul web (siti dinamici). Nelle maggior parte dei casi, queste applicazioni, utilizzano dati provenienti dall utente ed introducono quindi la possibilità di poter modificare delle variabili utilizzate dallo script, aumentando di conseguenza l insorgere di vulnerabilità manipolabili da remoto. Nei prossimi paragrafi proveremo ad analizzare una delle vulnerabilità più diffuse tra le applicazioni web-related la SQL Injection. LA TECNICA La maggior parte delle applicazioni web vengono realizzate interfacciando l applicazione ad un server DBMS (Data Base Management System) ed interagiscono con tali server con l ausilio del linguaggio standard SQL. SQL injection può considerarsi una tecnica di exploiting delle web application che utilizzano dati provenienti dai client nelle query, senza controllare la presenza di caratteri potenzialmente dannosi. In particolare, la tecnica dell SQL injection prevede lo sfruttamento, attraverso stringhe opportunamente manipolate ed inviate ad un web server con vulnerabilità specifiche riscontrate nei database SQL. Contrariamente a quello che si potrebbe pensare, la diffusione di queste vulnerabilità risulta molto diffusa ed è dovuta in molti casi alla mancanza di professionalità di molti programmatori, in alcuni casi improvvisati e mancanti di solide basi di programmazione. Nonostante sia abbastanza semplice difendersi da un attacco portato con questa tecnica ad oggi molte aziende, multinazionali comprese, sono vulnerabili all attacco e di conseguenza esposte a danni potenzialmente gravosi dal punto di vista economico e dell immagine. In ambito difesa, i danni che potrebbero creare questo tipo di vulnerabilità, oltre a danni che riguardano l immagine, potrebbe dar luogo a fuga di notizie con tutte le 1
3 conseguenze che comporterebbe tale azione. La quasi totalità dei portali a contenuto dinamico presenti su internet si basa su un colloquio tra web server ed un database SQL. Il colloquio avviene attraverso le cosiddette query, ovvero le richieste al database, scritte codificandole attraverso degli URL generati dall'applicazione web. Le query devono rispettare un certo standard di sintassi, comprendendo stringhe alfanumeriche e contenenti anche punteggiatura. A livello internazionale il codice ASCII regolamenta la codifica di tutti i caratteri, in pratica, ogni carattere e' associato ad un valore numerico in base ad una tabella, ma nel caso delle query SQL generate da un'applicazione web, il codice ASCII viene sostituito dall'unicode, che prevede di associare un valore esadecimale preceduto da un segno % ad ogni lettera o numero che si utilizza. Secondo il codice Unicode, per esempio, il segno percentuale viene codificato con %25 mentre il punto si codifica come %2E. Quando un'applicazione web genera una query SQL dinamica la genera codificandola in Unicode e, dato che i portali web usano molto spesso gli stessi script per effettuare le stesse operazioni di gestione, è possibile, per un hacker che sa com'e' strutturato un determinato script, inserire nella barra di indirizzi di Internet Explorer o qualsiasi altro browser, una URL contenente una query SQL creata ad hoc che ha come unico scopo quello di arrecare un danno al web server e all'applicazione che risiede sul server. Gli attacchi portati con questa tecnica producono due effetti principali: il primo e' quello di poter inserire ed estrarre dati nel database a piacimento e, nei casi più gravi, quello di poter ottenere il controllo remoto del server, ovvero di impadronirsi di tutte le sue funzionalità, con tutto quello che ne consegue a livello di danno aziendale. Un amministratore di rete che vuole difendersi da un attacco di questo tipo deve testare tutti gli script che fanno parte dell'applicativo che gestisce, verificando che tutti siano immuni dall'attacco. Nel prossimo paragrafo analizzeremo alcuni semplici test che un buon programmatore dovrebbe effettuare per mettere in sicurezza il proprio database; in rete comunque, sono disponibili white paper su come testare i propri script e su come metterli in sicurezza, ovviamente è d'obbligo disporre di conoscenze specifiche nel campo dei database relazionali per poter condurre un'attività specifica di bonifica delle vulnerabilità. TESTING In questo paragrafo illustreremo alcuni semplici test che serviranno a controllare le applicazioni e trovare eventualmente, vulnerabilità dovute alla tecnica dell SQL Injection. Questi controlli potrebbero essere molto complessi ma esistono dei casi in cui, la ricerca di script potenzialmente vulnerabili è molto semplice. Il test più semplice da effettuare consiste nell aggiunta di un apice in un form, per vedere come si comporta nella risposta, il server DBMS; se quest ultimo, ad esempio, risponde con una pagina bianca o piena di errori la nostra ricerca della vulnerabilità è già ad un buon punto. Un buon programmatore dovrebbe avere sotto controllo l input di ogni variabile senza dare per scontato che l utente, utilizzatore della web application, formatti correttamente le variabili. Ogni possibile campo deve essere testato per tutte le vulnerabilità per le quali queste potrebbero essere coinvolte, in modo da evitare ripercussioni in tutto lo script, spesso legato ad altri. 2
4 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` del tipo 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. Bisogna inoltre prestare attenzione alle piu` minime modifiche della pagina, segno di SQL Injection Exploiting, poiche` dei malintenzionati potrebbero nascondere codice malevole inserendo, ad 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']; 3
5 $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 si può 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 così il login a qualsiasi persona a conoscenza di questo problema. VISUALIZZARE DATI NON ACCESSIBILI Il mancato parsing (controllo/analisi) 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 si potrebbe 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 comando 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 4
6 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". Un fattore mitigante consiste nel fatto che 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, in alcuni casi necessaria, durante il debugging delle applicazioni web, ma puo` essere usata impropriamente per analizzare le query e di conseguenza carpire informazioni sulla realizzazione di una web application vulnerabile da SQL Injection. Quindi, risulterebbe utile testare un'applicazione inserendo volutamente errori di sintassi nei campi che interagiscono con l'utente, magari utilizzando costrutti SQL incompleti come "valore' ", " ' ", "'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 (''='') 5
7 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 ad 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 '%%' 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. 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 ' + SELECT nome FROM tab LIMIT 1 + ' e al posto di campo2 inseriamo ' + SELECT cognome FROM tab LIMIT 1 + ' 6
8 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 Sfruttare le stored procedures e` generalmente molto piu` 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. Questi, hanno la particolarita` di essere abbastanza veloci e sono molto utilizzati 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 comandi arbitrari. Ovviamente il sistema server SQL di Microsoft non e` l'unico ad offrire stored procedures predefinite ma 7
9 e` stato preso in considerazione per la gravita` della situazione che, combinata con errori di programmazione web permette l'accesso ad utenti non desiderati. 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) 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 Come già accennato nei paragrafi precedenti ogni web application che si rispetti, deve seguire piccole norme di programmazione per elevare la sicurezza al massimo. 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 8
10 e filtrare tutti gli indesiderati tramite l'utilizzo di parser appositi (magari una regular expression ben congegnata). Ad esempio per lasciar passare solo i caratteri alfabetici la regexp (regular expression) 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 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 contenente 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. COME PREVENIRE LE SQL INJECTION Prevenire le SQL injection è un compito relativamente semplice ed è possibile svolgerlo in vari modi a seconda dei casi e delle preferenze. Analizziamo ora, una per una, tutte le possibilità per proteggere la propria applicazione web (nel nostro caso PHP) dalle SQL injection. Una prima soluzione ci è fornita direttamente dal file di configurazione php.ini. Impostando la voce magic_quotes_gpc PHP si prenderà cura di aggiungere i caratteri di 9
11 escare davanti a tutti gli (apice) contenuti nei Cookie, Post e Get. Questa soluzione non è tuttavia ottimale in quanto potrebbe causare incompatibilità con molte applicazioni web di terze parti ed inoltre non protegge da input maliziosi non provenienti da cookie, Post o Get ed in applicazioni particolarmente complesse non è impossibile che, studiando l applicazione, un hacker possa trovare il modo per poter infiltrare da qualche parte la sua SQL injection. Una seconda soluzione è quella di utilizzare addslashes() o funzioni simili come mysql_escape_string() su tute le variabili inserite in una query SQL. In questo modo si sarà sempre sicuri che in tutti i valori passati gli apici verranno convertiti in \ rendendoli così inoffensivi. Si noti però, come questa precauzione, così come quella precedente, diventa realmente sicura, solo se, nelle query SQL si utilizza l apice anche quando si manipolano valori numerici. In tutte le query è infatti consigliabile utilizzare sempre sintassi del tipo id= 1. In questo caso saremo protetti dalle SQL injection, in caso contrario un hacker potrebbe comunque aggiungere un OR 1=1 dopo l id desiderato senza che il nostro addslashes() possa in alcun modo aiutarci. Il problema non è limitato comunque al solo uso degli apici ma si presenta allo stesso modo usando come delimitatore di stringa nelle query il carattere (virgolette). Fortunatamente mysql_escape_string() effettua l escape di tutti i caratteri che possono essere usati come delimitatori di stringa risolvendo parecchi problemi. Un ultima alternativa, che risulta la più complessa, ma anche la più sicura, è quella di controllare di volta in volta ogni variabile inserita in una query con regular expression o altre funzioni specifiche. Se per esempio sappiamo a priori che una variabile deve contenere un numero intero potremmo usare una soluzione di questo tipo: $id = (int)$_post[ id ]; $query=mysql_query( SELECT * FROM users WHERE id=$id,$db); I questo caso possiamo essere sicuri che il campo id sarà un campo numerico, se qualcuno provasse ad inserire valori di altra natura la sintassi (int) restituirebbe infatti valore 0. In questo caso è persino inutile utilizzare gli apici prima e dopo $id. Nel caso invece di output testuali o di altra natura non numerica la soluzione ideale sono senza ombra di dubbio le regular expression, create di volta in volta per accettare esclusivamente il tipo di dati che si prevede utilizzare. Se ad esempio si desidera filtrare una variabile $stringa per essere sicuri che contenga solo caratteri alfanumerici si può usare la seguente regular expression: if (ereg( ^[A-Z0-9]+$,$stringa)) { mysql_query( SELECT * FROM users WHERE nome=$stringa,$db); } else print Parametro non valido ; Le Regular Expression sono senza ombra di dubbio lo strumento più potente a disposizione dei programmatori PHP per verificare che ogni input dell utente, qualsiasi sia la sua provenienza, corrisponda effettivamente al tipo di dato che era stato richiesto. 10
12 Questo tipo di controllo è sicuramente più complesso rispetto agli altri due o ad altri che potrebbero venir utilizzati ma garantisce, se la regular expression è ben strutturata, una sicurezza estremamente elevata: se un campo della nostra applicazione deve contenere solo ad es. : mele, è sempre meglio verificare che contenga effettivamente mele piuttosto che controllare che non contenga pere, in questo secondo caso infatti, anche in assenza di pere, il campo potrebbe comunque contenere pesche o altro. Questo semplice esempio dovrebbe rendere l idea di quello che idealmente bisognerebbe realizzare per ogni parametro. Ciò è per altro consigliabile non solo per prevenire possibili SQL injection ma anche altri tipi di attacchi o comunque spiacevoli bug ed errori imprevisti durante l utilizzo dell applicazione da parte degli utenti. Qualunque sia la tecnica preferita, l importante è implementare sempre almeno uno dei metodi di prevenzione qui descritti. Le SQL injection, come già detto, sono un tipo di attacco estremamente facile da eseguire per chiunque abbia un minimo di conoscenze su PHP e database ed i risultati di un simile attacco possono risultare gravi. CONCLUSIONI Abbiamo visto nei precedenti paragrafi, come un non corretto sviluppo applicativo, possa permettere potenzialmente ad un malintenzionato di effettuare un attacco al database tramite la immissione di caratteri anomali in una query al database. Allo stesso tempo, tale vulnerabilità può tra l altro facilmente essere ovviata adottando le seguenti precauzioni: - utilizzare dei valori predefiniti per sostituire gli input non congrui; - predisporre un messaggio di errore alla ricezione di query irregolari; - costruire un sistema di logging che registri tutti i tentativi di intrusione. Indipendentemente dal tipo di difesa che si decide di intraprendere, il fattore comune che ogni programmatore deve tener presente e che ogni input deve essere controllato prima di arrivare sul database. 11
WHITE PAPER Per Sql-Injection si intendono comunemente tutti quegli attacchi ad un'applicazione, solitamente Web, in cui il programma esegue query su di un database SQL utilizzando variabili passate dall'utente
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
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
DettagliSoftware per Helpdesk
Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
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
DettagliNovità di Access 2010
2 Novità di Access 2010 In questo capitolo: Gestire le impostazioni e i file di Access nella visualizzazione Backstage Personalizzare l interfaccia utente di Access 2010 Creare database utilizzando modelli
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
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
DettagliMySQL 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
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
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
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
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
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
DettagliEsercizi su. Funzioni
Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità
DettagliNelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento
I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere
DettagliCONTENUTI 1. INTRODUZIONE...3 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 3. ACCESSO A EQUINOX CMS XPRESS...9 4. PAGINA D INIZIO...
CONTENUTI 1. INTRODUZIONE...3 DEFINIZIONE...3 ELEMENTI DEL SERVIZIO...3 TECNOLOGIA E OPERAZIONE...3 WORKFLOW E GRAFICO DI PROCESSI...4 2. CONCETTI BASICI SU EQUINOX CMS XPRESS...5 STRUTTURA...5 OGGETTI...5
DettagliIntroduzione ai Sistemi di Gestione di Basi di Dati XML
Introduzione ai Sistemi di Gestione di Basi di Dati Introduzione ai Sistemi di Gestione di Basi di Dati Obiettivi Memorizzare ed estrarre documenti da RDBMS. Trasformare dati tabellari in dati e viceversa.
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
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
DettagliDatabase 1 biblioteca universitaria. Testo del quesito
Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole
DettagliNAVIGAORA HOTSPOT. Manuale utente per la configurazione
NAVIGAORA HOTSPOT Manuale utente per la configurazione NAVIGAORA Hotspot è l innovativo servizio che offre ai suoi clienti accesso ad Internet gratuito, in modo semplice e veloce, grazie al collegamento
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
DettagliProgetto di Ingegneria del Software 2. SWIMv2
Progetto di Ingegneria del Software 2 2012/2013 SWIMv2 Guida al Testing Docente: Prof. Luca Mottola Davide Brambilla Antonio Caputo Paolo Caputo 1 Indice 1 Introduzione 1.1 Materiale fornito................................
DettagliCOME CREARE UNA COMUNICAZIONE / NEWSLETTER
COME CREARE UNA COMUNICAZIONE / NEWSLETTER Benvenuti nella MINI GUIDA di Centrico per la creazione di una nuova Comunicazione o Newsletter. Grazie a questa guida, potrai creare delle comunicazioni ad hoc
DettagliProteggiamo il PC con il Firewall di Windows Vista
Proteggiamo il PC con il Firewall di Windows Vista Il momento in cui un computer è più a rischio e soggetto ad attacchi informatici, è quando è connesso a internet. Per proteggere il nostro PC ed evitare
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
DettagliCONTENT MANAGEMENT SY STEM
CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES
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
Dettagli[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection
---------------------------------------------------------------------..... _/ / _ / / \ \/ / / / / \ / \ \ \ / /_/ \ /\ / \ \ \ / /_/ > Y \ \ \ >\_/ / > / \ / / \/ \/ \/ \/ / / \/ ---------------------------------------------------------------------
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliPresentazione Data Base
Presentazione Data Base Ovvero: il paradigma LAPM (Linux - Apache - PHP - mysql) come supporto Open Source ad un piccolo progetto di Data Base relazionale, e tipicamente ad ogni applicazione non troppo
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliGRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo
GRUPPO CAMBIELLI Posta elettronica (Webmail) Consigli di utilizzo Questo sintetico manuale ha lo scopo di chiarire alcuni aspetti basilari per l uso della posta elettronica del gruppo Cambielli. Introduzione
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
DettagliAbilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere
Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.
DettagliProgetto ittorario Anno scol. 2013-2014
PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe
DettagliIl software di gestione immobiliare più facile da usare. Modulo Web v5.2. www.gestim.it
Il software di gestione immobiliare più facile da usare Modulo Web v5.2 www.gestim.it Introduzione Il Modulo Web è un componente di Gestim che permette di pubblicare in automatico gli annunci sul sito
DettagliIntroduzione alla teoria dei database relazionali. Come progettare un database
Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliGUIDA ALLA GESTIONE DEI TICKET REV. 1. guida_gestione_tck_rev1.doc - 1 di 9
GUIDA ALLA GESTIONE DEI TICKET REV. 1 guida_gestione_tck_rev1.doc - 1 di 9 INTRODUZIONE Dopo aver utilizzato internamente per alcuni anni il nostro software di Ticketing, abbiamo deciso di metterlo a disposizione
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,
DettagliMANUALE MOODLE STUDENTI. Accesso al Materiale Didattico
MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...
DettagliTitolare del trattamento dei dati innanzi descritto è tsnpalombara.it
Decreto Legislativo 196/2003 Codice in materia di protezione dei dati personali COOKIE POLICY La presente informativa è resa anche ai sensi dell art. 13 del D.Lgs 196/03 Codice in materia di protezione
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
DettagliImpostare il browser per navigare in sicurezza Opzioni di protezione
Impostare il browser per navigare in sicurezza Opzioni di protezione Data la crescente necessità di sicurezza e tutela dei propri dati durante la navigazione in rete, anche gli stessi browser si sono aggiornati,
DettagliBanca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste
Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliProgettazione Web Applicazioni client-server
Progettazione Web Applicazioni client-server Sviluppo di un'applicazione Web integrando: HTML MySQL PHP Apache Applicativi utilizzabili: gestione database: JDER, MySQL Workbench, HeidiSQL (Win), DBeaver
DettagliSITI-Reports. Progetto SITI. Manuale Utente. SITI-Reports. ABACO S.r.l.
Progetto SITI Manuale Utente SITI-Reports ABACO S.r.l. ABACO S.r.l. C.so Umberto, 43 46100 Mantova (Italy) Tel +39 376 222181 Fax +39 376 222182 www.abacogroup.eu e-mail : info@abacogroup.eu 02/03/2010
DettagliMODULO 5 ACCESS Basi di dati. Lezione 4
MODULO 5 ACCESS Basi di dati Lezione 4 ARGOMENTI Lezione 4 Filtrare i dati Esempio 1 Query Cos è Creare Query in visualizza struttura Criteri di ricerca Esempio 2 Esempio 3 Esempio 4 Creare Query in creazione
DettagliSiamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.
DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti
Dettaglilo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000
Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,
Dettagliwww.filoweb.it STAMPA UNIONE DI WORD
STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere
DettagliGuida all uso di Java Diagrammi ER
Guida all uso di Java Diagrammi ER Ver. 1.1 Alessandro Ballini 16/5/2004 Questa guida ha lo scopo di mostrare gli aspetti fondamentali dell utilizzo dell applicazione Java Diagrammi ER. Inizieremo con
DettagliDatabase e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
DettagliObiettivi d esame PHP Developer Fundamentals on MySQL Environment
Obiettivi d esame PHP Developer Fundamentals on MySQL Environment 1.0 Ambiente di sviluppo 1.1 Web server e database MySQL Comprendere la definizione dei processi che si occupano di fornire i servizi web
DettagliManuale Servizio NEWSLETTER
Manuale Servizio NEWSLETTER Manuale Utente Newsletter MMU-05 REDAZIONE Revisione Redatto da Funzione Data Approvato da Funzione Data 00 Silvia Governatori Analista funzionale 28/01/2011 Lorenzo Bonelli
DettagliLe query. Lezione 6 a cura di Maria Novella Mosciatti
Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine
DettagliIl calendario di Windows Vista
Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliClient - Server. Client Web: il BROWSER
Client - Server Client Web: il BROWSER Il client Web è un applicazione software che svolge il ruolo di interfaccia fra l utente ed il WWW, mascherando la complessità di Internet. Funzioni principali Inviare
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
DettagliPULSANTI E PAGINE Sommario PULSANTI E PAGINE...1
Pagina 1 Sommario...1 Apertura...2 Visualizzazioni...2 Elenco...2 Testo sul pulsante e altre informazioni...3 Comandi...3 Informazioni...4 Flow chart...5 Comandi...6 Pulsanti Principali e Pulsanti Dipendenti...6
DettagliPROGRAMMA GESTIONE TURNI MANUALE UTENTE. Programma Gestione Turni Manuale Utente versione 1.1
PROGRAMMA GESTIONE TURNI MANUALE UTENTE INDICE 1 PREMESSA 3 2 COMANDI COMUNI 3 3 SEDI 3 4 FESTIVITÀ 4 5 PERIODI TURNI 4 6 COD. TURNI 6 7 TURNI SPORTIVI 9 8 COD. EQUIPAGGI 9 9 DISPONIBILITÀ 10 10 INDISPONIBILITÀ
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
DettagliSistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO
Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO Login All apertura il programma controlla che sia stata effettuata la registrazione e in caso negativo viene visualizzato un messaggio.
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
DettagliCOMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015
COMUNICAZIONE UTENTI SISTEMI-PROFIS INSTALLAZIONE GE.RI.CO. 2015 e PARAMETRI2015 Vicenza, 3 giugno 2015 Gentile cliente, si ricorda che a partire dall aggiornamento PROFIS 2011.1 è stato automatizzato
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliEsercitazione 4 JDBC
JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione
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
DettagliEXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,
EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area
DettagliMANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
DettagliCreare una nuova spedizione personalizzata.
Gestione spedizioni La piattaforma ecommerce compry.it offre una gestione estremamente potente dei costi di spedizione da applicare al cliente che effettua acquisti. Il sistema, oltre al classico calcolo
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
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...
DettagliScenari esemplificativi di utilizzo delle Mailing List
Scenari esemplificativi di utilizzo delle Mailing List La Mailing List è un particolare tipo di account che permette di definire al proprio interno un insieme di destinatari ai quali sarà possibile spedire
DettagliStampa unione -contratto di tirocinio. Documentazione
Stampa unione -contratto di tirocinio Documentazione Versione 0.1 Data 27.09.2012 Copyright CSFO A proposito di questa documentazione Questa documentazione è indirizzata agli utenti dell applicazione stampa
DettagliWG-TRANSLATE Manuale Utente WG TRANSLATE. Pagina 1 di 15
WG TRANSLATE Pagina 1 di 15 Sommario WG TRANSLATE... 1 1.1 INTRODUZIONE... 3 1 TRADUZIONE DISPLAY FILE... 3 1.1 Traduzione singolo display file... 4 1.2 Traduzione stringhe da display file... 5 1.3 Traduzione
DettagliEXCEL FUNZIONI PRINCIPALI
EXCEL FUNZIONI PRINCIPALI Funzione SE() Sintassi: SE(VERIFICA, VALORE SE VERO, VALORE SE FALSO): verifica un valore e ritorna una risposta in base al risultato vero/falso Esempio: =SE(A2=15; "OK"; "NO")
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliGestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
Dettagliper immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1
Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra
DettagliPortale tirocini. Manuale utente Per la gestione del Progetto Formativo
GESTIONE PROGETTO FORMATIVO Pag. 1 di 38 Portale tirocini Manuale utente Per la gestione del Progetto Formativo GESTIONE PROGETTO FORMATIVO Pag. 2 di 38 INDICE 1. INTRODUZIONE... 3 2. ACCESSO AL SISTEMA...
Dettaglisito web sito Internet
Siti Web Cos è un sito web Un sito web o sito Internet è un insieme di pagine web correlate, ovvero una struttura ipertestuale di documenti che risiede, tramite hosting, su un web server e accessibile
DettagliGuida all accesso al portale e ai servizi self service
Guida all accesso al portale e ai servizi self service INDICE PREMESSA 2 pag. 1 INTRODUZIONE 2 2 MODALITÀ DI PRIMO ACCESSO 2 2.1 LA CONVALIDA DELL INDIRIZZO DI POSTA ELETTRONICA 2 2.2 L INSERIMENTO DELLA
DettagliLe Basi di Dati. Le Basi di Dati
Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per
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
DettagliI TUTORI. I tutori vanno creati la prima volta seguendo esclusivamente le procedure sotto descritte.
I TUTORI Indice Del Manuale 1 - Introduzione al Manuale Operativo 2 - Area Tutore o Area Studente? 3 - Come creare tutti insieme i Tutori per ogni alunno? 3.1 - Come creare il secondo tutore per ogni alunno?
DettagliA destra è delimitata dalla barra di scorrimento verticale, mentre in basso troviamo una riga complessa.
La finestra di Excel è molto complessa e al primo posto avvio potrebbe disorientare l utente. Analizziamone i componenti dall alto verso il basso. La prima barra è la barra del titolo, dove troviamo indicato
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
DettagliLE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE
LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare
DettagliIl sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.
SH.MedicalStudio Presentazione SH.MedicalStudio è un software per la gestione degli studi medici. Consente di gestire un archivio Pazienti, con tutti i documenti necessari ad avere un quadro clinico completo
DettagliPSNET UC RUPAR PIEMONTE MANUALE OPERATIVO
Pag. 1 di 17 VERIFICHE E APPROVAZIONI VERSIONE V01 REDAZIONE CONTROLLO APPROVAZIONE AUTORIZZAZIONE EMISSIONE NOME DATA NOME DATA NOME DATA PRATESI STATO DELLE VARIAZIONI VERSIONE PARAGRAFO O DESCRIZIONE
DettagliManuale Utente Albo Pretorio GA
Manuale Utente Albo Pretorio GA IDENTIFICATIVO DOCUMENTO MU_ALBOPRETORIO-GA_1.4 Versione 1.4 Data edizione 04.04.2013 1 TABELLA DELLE VERSIONI Versione Data Paragrafo Descrizione delle modifiche apportate
DettagliManuale di KSystemLog. Nicolas Ternisien
Nicolas Ternisien 2 Indice 1 Usare KSystemLog 5 1.1 Introduzione......................................... 5 1.1.1 Cos è KSystemLog?................................ 5 1.1.2 Funzionalità.....................................
Dettagli