Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Funziona per l'injection

    Ciao ragazzi,
    una domanda che forse è un pò stupida.
    ho usato questa funzione per recuperare i dati da login:

    codice:
    Function FixSQL(stringa)
    stringa = Replace(stringa, "'", "''")
    stringa = Replace(stringa, "%", "[%]")
    stringa = Replace(stringa, "[", "[[]")
    stringa = Replace(stringa, "]", "[]]")
    stringa = Replace(stringa, "_", "[_]")
    stringa = Replace(stringa, "#", "[#]")
    FixSQL = stringa
    End function

    Adesso però se un utente si registra come
    username = mio_nome
    quando vado a fare la select utilizzando poi quella funziona non lo recupera.
    E' perchè devo usare questa funzione anche quando inseriscono i nomi in fase di registrazione?
    Grazie a tutti

  2. #2
    se ti da' fastidio, perché lo fai?

  3. #3
    dici tu a questo punto glielo toglo proprio il controllo dell'underscore, eh?

  4. #4
    zeta, guarda che non ho capito niente: né perché lo fai, né quale sia il problema.

  5. #5
    ok mi spiego meglio.
    La funzione la faccio per evitare rischi dovuti all'sql injection.

    il problema è che un utente che si chiama per esempio
    mio_nome
    non riesce a fare il login perchè chiaramente nella funzione c'è un replace che modifica il nome dell'utente non facendolo piu ritrovare nel db.

    eliminando la riga del replace dell'underscore riesco a fare in modo che il login vada a buon fine, ma poi sono sicuro contro la sql injection?

    Grazie mille

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ciò che non vuoi che valga *DOPO*, quindi in fase di login, non deve valere nemmeno *PRIMA*, ovvero in fase di registrazione.
    Se fai registrare un utente con l'underscore e poi non vuoi che lo digiti per entrare non ti sembra un controsenso???
    Quindi al limite impedisci di registrarsi usando le stesse precauzioni che andrai poi a verificare in fase di login.

    Roby

  7. #7
    e poi non ho capito: in che modo mettere [_] a posto di _ impedirebbe la sql injection? tra l'altro, il carattere [ in m$sql ha un suo significato...

  8. #8
    ecco il perchè della mia domanda.
    grazie cmq le risposte

  9. #9
    Originariamente inviato da zetaweb
    ecco il perchè della mia domanda.
    grazie cmq le risposte
    ho capito bene? vuoi sapere da NOI perché TU hai fatto una certa cosa. fantastico

  10. #10
    io davvero non capisco il perchè di questa ironia inutile sinceramente...

    Apprezzo moltissimo il lavoro di tutti quelli che rispondono su questo forum senza che niente gli sia dovuto, tu compreso che sei uno dei piu preparati sull'argomento, eppure sarebbe bastato semplicemente dire "guarda credo che la tua funzione sia sbagliata per proteggersi dall'sql injection" visto che la domanda riguardava proprio la funzione in sè, o cmq cercare di dare un suggerimento valido, un consiglio efficace su come ragionare come quello di roby senza usare un tono saccente come in
    e poi non ho capito: in che modo mettere [_] a posto di _ impedirebbe la sql injection? tra l'altro, il carattere [ in m$sql ha un suo significato...
    o ancora
    ho capito bene? vuoi sapere da NOI perché TU hai fatto una certa cosa. fantastico
    Ripeto, ho sempre apprezzato e utilizzerò sempre questo forum per chiedere consigli e anche per darne quando ne sono ingrado, ma penso sia importante saper dare consigli nella maniera più corretta.

    Grazie mille ugualmente e buon lavoro a tutti

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 © 2026 vBulletin Solutions, Inc. All rights reserved.