Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: SQL Injection

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170

    SQL Injection

    ciao a tutti,
    sono alle prese con sql injection e i vari modi per prevenire attacchi.
    Qualcuno mi sa dire se una sql del genere può essere attaccata?
    Il db è access e recupero dei dati da un url es:
    http://www.miosito.it/articolo.asp?id=33

    recupero l'id e lo inserisco nella sql così:
    Rs.open "Select * from articolo where id="&request("id"),Conn,1 , 2

    questa sql così strutturata può essere bucata.

    Grazie
    ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170
    Nessuno mi sa dire se può essere bucata?
    ho letto su un articolo che ponendo l'url in questo modo:
    http://www.miosito.it/articolo.asp?id=33; delete * from articolo
    è possibile cancellare tutta la tabella degli articoli.
    É vero?

    l'articolo:
    http://www.aspitalia.com/liste/usag/script.aspx?ID=390

    Ciao

  3. #3
    il tuo id e' sempre numerico?....

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170
    Si è sempre numerico, alcune volte passo conun altro parametro una stringa, ma li sostituisco gli apici con il codice html e non credo che ci siano problemi.
    Il problema è con gli indici numerici.
    Nel frattempo ho racchiuso il request("id") in Cint(request("id")), ma non so se può essere la soluzione ideale

  5. #5
    quindi basta verificare che il dato passato sia numerico. "delete * from tabella" non lo e' di sicuro

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170
    Quindi come ho risolto il problema va bene?
    l'applicazione (almeno da questo punto di vista) è sicura?
    Ciao

  7. #7
    si e no. usa IsNumeric

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170
    quindi prima di eseguire la pagina verifico con IsNumeric e se è numerico allora proseguo.
    così dovrebbe funzionare?

  9. #9
    Io per i miei login ho sviluppato uno script da lanciare prima di aprire il DB e di lanciare l'eventuale query.

    codice:
    Function Controllo(testo)
      '*********************
    if UCASE(testo) = "OR" then desc = "Sbagliato"
    if UCASE(testo) = "AND" then desc = "Sbagliato"
    if UCASE(testo) = "LIKE" then desc = "Sbagliato"
    set re = new RegExp
    	re.Pattern = "['\-\=\?\&\*\$\.\;\!\<\>\%]"
    	if re.Test(var) then Desc = "Sbagliato"
    End Function
    Questa, invece, è la versione precendente:

    codice:
    Function Controllo(testo)
      '*********************
      testo= replace(testo, "'", " ")
      testo= replace(testo, "-", " ")
      testo= replace(testo, "=", " ")
      testo= replace(testo, "?", " ")
      testo= replace(testo, "&", " ")
      testo= replace(testo, "*", " ")
      testo= replace(testo, "$", " ")
      testo= replace(testo, ".", " ")
      testo= replace(testo, ";", " ")
      testo= replace(testo, "!", " ")  
      testo= replace(testo, ">", " ")
      testo= replace(testo, "<", " ") 
    End Function
    Spero ti possa essere d'aiuto

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    170
    si grazie io durante questa discussione avevo scritto solo la seconda parte della tua funzione non avevo pensato a ad intercettare or, like ecc. Grazie.
    Ho ancora una domanda che mi turba.
    Dopo il login prendo un dato del visitatore e lo inserisco in una session del tipo session("visitatore"). É possibile forzare la session o meglio un intruso può riempire il valore della session e baipassare il login e puntare direttamente alle pagine interne.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.