Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180

    protezione form di login funzione instr

    Ho utilizzato una blacklist di parole postata da un utente per fargli fare un controllo sul form di login, qualcosa non va nel ciclo, qualcuno mi aiuta plz?

    Adesso qualsiasi cosa io scriva dentro il form di login mi ridireziona alla pagina del form come se fosse sempre errato....ma perche?

    codice:
    <% Dim user, password, BlackList(32)  
    BlackList(32) = Array("/*", "*/", "@@", "declare", "delete", "drop", "exec", "execute", "fetch", "insert", "kill", "open", "select", "sys", "sysobjects", "syscolumns", "table", "update", "script", "xp", "555044415445", "757064617465", "736372697074", "534352495054", "65786563", "45584543", "696E73657274", "494E53455254", "64656C657465", "44454C455445", "varchar") 
    
    user = Request.Form("user") 
    password = Request.Form("password")  
    
    If (InStr(user, UCase(BlackList(i))) <> 0 Or InStr(password, UCase(BlackList(i))) <> 0) Then
     response.redirect ("administer/index.htm") else     
    Set RSlogin = connect.Execute("Select * From Login Where user = '"&user&"' And password = '"&password&"'") 
    If Not RSlogin.EOF Then Session("inne") = True 
    end if 
    if Session("inne") = True then %>

    l'ultima parte del codice in login_footer.asp contiene:

    codice:
    <% else 
    response.Redirect("administer/index.htm") 
    end if   %>

    Perfavore qualcuno mi aiuti

  2. #2
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Stampati a video le variabili stoppando ad hoc l'esecuzione del codice, fai debug e troverai il problema...

  3. #3
    mah guarda, è tutto sbagliato direi

    codice:
    dim user, password, blacklist
    blacklist=array(...)
    
    user = request.Form..
    password = request.form..
    
    for each blk in blacklist
    
    if instr(user,blk)<>0 or instr(password,blk)<> then
    
    response.redirect ..
    
    end if
    
    next
    
    set rs = conn.execute("select .. ")
    
    if not rs.eof then
    
    'loggo utente
    
    else
    
    response.redirect ("utente_errato")
    
    end if
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    è solo dannosa quella blacklist perché ti da l'impressione di una sicurezza che invece non ti garantisce per nulla,
    e non ti fa loggare utenti come killthebill, pinoxp

    piuttosto fai un replace degli apici

  5. #5
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    allora ho scritto questo :


    codice:
    <% Dim user, password, BlackList(32)
    
    BlackList(32) = Array("/*", "*/", "@@", "declare", "delete", "drop", "exec", "execute", "fetch", "insert", "kill", "open", "select", "sys", "sysobjects", "syscolumns", "table", "update", "script", "xp", "555044415445", "757064617465", "736372697074", "534352495054", "65786563", "45584543", "696E73657274", "494E53455254", "64656C657465", "44454C455445", "varchar", "'")
    user = Request.Form("user")
    password = Request.Form("password")
    
    for each x in Blacklist(32)
    If (InStr(user, x) <> 0 Or InStr(password, x) <> 0) Then
    response.redirect ("/")
    end if
    
    next
    
    Set RSlogin = connect.Execute("Select * From Login Where user = '"&user&"' And password = '"&password&"'")
    
    If Not RSlogin.EOF Then
    Session("inne") = True
    end if
    if Session("inne") = True then %>

    funziona!!! ma esegue il login anche se non inserisco la password, con la user esatta.

  6. #6
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    FUNZIONA!!!! grazie

  7. #7
    ALTER PROC ...
    DENY ALL TO ...
    REVOKE ...
    SHUTDOWN
    eccetera

    la lista sarebbe ben più lunga, ma non si risolve così la sql injection

    :rollo:

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Suggerisco di usare la funzione "cerca" del forum con la chiave di ricerca: sql injection.

    Se ne è parlato molto.

  9. #9
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    Ma pork!!! Ora che funziona non va bene T_T

    posso usare questa ?
    sql inj

    con questa risolvo qualcosa?

  10. #10
    Utente di HTML.it L'avatar di jonnyl
    Registrato dal
    Dec 2003
    Messaggi
    180
    allora ho usato quel replace che mi sembra ottimo

    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 su ogni input box che voglio proteggere aggiungo la fixsql è funziona perfettamente, sono anche in grado di registrare chi ha scritto cosa, e salvare anche l'ip sul DB.

    grazie a tutti per l'aiuto, adesso vado a cimentarmi con la funzione di ricerca

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.