Post con tag ‘ASP’

  • Inviare Email Tramite ASP

    12 settembre 2007 | Sviluppo Web | Nessun Commento.

    A seconda del sistema operativo utilizzato, ASP mette a disposizione dello sviluppatore due oggetti per l’invio di email. Fino a Windows NT, infatti, l’oggetto predefinito è CDONTS, mentre da Windows 2000 in poi è obbligatorio utilizzare CDO.

    Di seguito due esempi che mostrano l’uso di entrambi gli oggetti.

    CDONTS

    <%
    'Creo l'oggetto
    Set objCDONTS = Server.CreateObject("CDONTS.NewMail")
    
    objCDONTS.From = "mittente@tuamail.it" 'Mittente
    objCDONTS.To = "destinatario@suamail.it" 'Destinatario
    objCDONTS.Subject = "Oggetto della email" 'Oggetto
    objCDONTS.Body = "Testo della email" 'Testo
    
    objCDONTS.Send 'Invio del messaggio
    
    'Pulizia
    Set objCDONTS = Nothing
    %>
    

    CDO

    'Creo l'oggetto
    Set objCDO = Server.CreateObject("CDO.Message")
    
    objCDO.From = "mittente@tuamail.it" 'Mittente
    objCDO.To = "destinatario@suamail.it" 'Destinatario
    objCDO.Subject = "Oggetto della email" 'Oggetto
    objCDO.TextBody = "Testo della email" 'Testo
    
    objCDO.Send 'Invio del messaggio
    
    'Pulizia
    Set objCDONTS = Nothing
    %>
    
  • Aggiornare File XML con ASP: Introduzione

    1 giugno 2007 | Sviluppo Web | 2 Commenti

    Aggiornare file XML tramite ASP è un’operazione molto semplice. L’oggetto necessario per svolgere il compito è, come d’abitudine, il MSXML2.DOMDocument.4.0. Per quanto riguarda i metodi da utilizzare dobbiamo fare una distinzione fra quelli che riguardano l’aggiornamento e quelli che riguardano invece l’aggiunta di nuovi nodi.

    Nota: il codice XML che utilizzerò per gli esempi di questo articolo è ripreso dall’intervento Accedere ad un File XML con ASP. Per rendere la lettura più semplice riporto comunque il codice:

    <?xml version="1.0" encoding="iso-8859-1"?>
    	<listaprodotti>
    		<prodotto id="1" nome="Sum41 - Does this look infected">Ultimo album del famoso gruppo punk-rock</prodotto>
    		<prodotto id="2" nome="Iron Maiden - The best of the beast">Album fantastico!</prodotto>
    </listaprodotti>
    

    Aggiornamento di nodi o attributi già esistenti

    E’ relativamente semplice aggiornare un file XML. Il metodo più pratico è riportato nel listato seguente:

    <%
    'Oggetto XML
    Set objXML = Server.CreateObject("Msxml2.DOMDocument.4.0")
    
    'Carico i dati XML
    objXML.async = False
    objXML.load(Server.MapPath("esempio.xml"))
    
    'Procedo all'aggiornamento
    set objData = objXML.selectSingleNode("listaprodotti/prodotto[@id='1']")
    objData.Text = "Testo del nodo aggiornato...... w minifloppy.it!"
    set objData = nothing
    
    objXML.Save(Server.MapPath("esempio.xml"))
    
    'Pulizia
    Set objXML = nothing
    %>
    

    Continua a leggere »

  • Una Pagina Conta Click con ASP e XML

    16 maggio 2007 | Sviluppo Web | Nessun Commento.

    Qualche giorno fa Andrea, un lettore che ringrazio per lo spunto che mi ha fornito per questo intervento, mi ha scritto per chiedermi qualche consiglio nella realizzazione di una pagina "contaclick".

    Lo scopo di una pagina del genere potrebbe essere quello di monitorare quanti utenti di un sito navigano verso una pagina esterna.

    La soluzione più semplice per la realizzazione di un sistema del genere in ASP è sicuramente quella di utilizzare un file XML per memorizzare i link e il numero di click ad essi associato:

    <?xml version="1.0" ?>
    <links>
        <link id="l0" click="0">http://www.minifloppy.it</link>
    </links>
    

    Continua a leggere »

  • Accedere ad un File XML con ASP

    14 maggio 2007 | Sviluppo Web | 2 Commenti

    Di seguito è riportato il codice XML che userò anche in futuro, nel corso di altri articoli:

    <?xml version="1.0" encoding="iso-8859-1"?>
    	<listaprodotti>
    		<prodotto id="1" nome="Sum41 - Does this look infected">Ultimo album del famoso gruppo punk-rock</prodotto>
    		<prodotto id="2" nome="Iron Maiden - The best of the beast">Album fantastico!</prodotto>
    </listaprodotti>
    

    La struttura come potete vedere è molto semplice e consiste nell’elemento radice “listaprodotti” e nei due elementi figli “prodotto”. Questi ultimi hanno tre attributi: “id”, “nome” e “descrizione”.
    Continua a leggere »

  • Sql Injection

    28 aprile 2007 | Sviluppo Web | Nessun Commento.

    SQL Injection: cos’è?

    In generale il sql injection è una tattica con cui un malintenzionato riesce ad eseguire qualsiasi operazione sul database, sia questa di aggiunta, modifica o cancellazione di dati. Se poi l’attaccante agisce su Sql Server, MySql o simili, i pericoli sono ancora maggiori: basti pensare a cosa potrebbe fare una volta acquisiti i permessi di amministratore.

    Come funziona

    Il sql injection prevede l’inserimento di istruzioni sql nella query di interrogazione del database. Per un esempio, basta pensare ad una pagina di login con i due campi nome utente e password. Un malintenzionato può inserire qualsiasi istruzione SQL nel primo campo semplicemente scrivendo: ‘comando. L’apostrofo (’) infatti segna la fine della stringa. Ecco a confronto le due query che potrebbero venire fuori dalla tecnica precedente, la prima è quella corretta, la seconda è quella contraffatta:

    SELECT * FROM utenti WHERE
    nome = 'minifloppy' AND password = 'webmaster'
    
    SELECT * FROM utenti WHERE
    nome = '';query contraffatta--AND password = 'webmaster'
    

    I cracker sono ancora più facilitati se nel form viene richiesto un valore numerico. In questo caso basterebbe semplicemente inserire la query contraffatta.

    Come difendersi

    Le difese possono essere principalmente tre:

    • Cercare di far diventare l’input corretto
    • Non accettare input che è stato riconosciuto come non corretto
    • Accettare solo input corretto

    La prima è decisamente da scartare perchè modificando l’input potremmo incorrere in molti problemi. Primo fra tutti è quello del riconoscere l’input scorretto, soprattutto perchè di input scorretti ne vengono scoperti in ogni momento di nuovi. Secondo la modifica protrebbe alterare la lunghezza ed il contenuto.

    Anche la seconda presenta gli stessi inconvenienti della prima, quindi l’unica utilizzabile in modo sicuro è la terza. Di seguito è riportato un esempio pratico (in ASP) per ogni approccio possibile:

    <%
    'Esempio n.1
    'Facciamo diventare corretto l'input sostituendo l'apostrofo con altri due
    
    function controlla(input)
         input = replace(input, "'", "''")
         controlla = input
    end function
    %>
    
    <%
    'Esempio n.2
    'Controlliamo che l'input sia corretto
    function controlla2(input)
         aScorretto = array( "select", "insert", "update", "delete", "drop",
    "--", "'" )
         controlla2 = true
    
         for i = lbound(aScorretto) to ubound(aScorretto)
    
              if ( instr( 1, input, aScorretto(i), vbtextcompare ) <> 0 )
    then
                   controlla2 = false
                   exit function
              end if
    
         next
    
    end function
    %>
    
    <%
    'Esempio n.3
    'Accettiamo solo l'input corretto
    function controlla3(input)
         strChars =
    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
         controlla3 = true
    
         for i = 1 to len(input)
              c = mid( input, i, 1 )
    
              if ( InStr( strChars, c ) = 0 ) then
                   controlla3 = false
                   exit function
              end if
    
         next
    end function
    %>
    

    Conclusioni

    Come abbiamo visto validare gli input è molto importante, pena database in pericolo. Eseguire controlli non significa quindi sprecare tempo e risorse, ma rendere la nostra applicazione più affidabile e sicura.