Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Aiuto Password e autentificazione

    Ciao a tutti,
    tramite vostri consgli in passato ho creato la mia pagina di autentificazione ad un area riservata del sito.
    Praticamente le pagine protette vengono controllate da una varibile di sessione che si crea se la username e la password sono esastte.
    tali dati, username e password, risiedono in un db (su Aruba dentro la cartella mdb-database) e la pagina di controllo verifica se i dati inseriti corrispondono a dati presenti sul db generando diverse varibili di sessione in base ai dati inseriti; tutto ciò perchè il pannello controlla diversi utenti contemporaneamente... nulla di particolare.

    Il problema però è che il sito è on line da 1 mese e qualche giorno fa siamo stati "bucati" senza grossi problemi(CREDO)... praticamente un anonimo ha lasciato un messaggio in quest'area scrivendo di controllare il pannello perchè era vulnerabile facilmente.

    Il metodo utilizzato è valido?
    Che ne pensate?

    Fatemi sapere.
    Grazie.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Può essere un semplice caso di SQl injection (cerca sul web di cosa si tratta).
    Vediamo come controlli user e password.

    Roby

  3. #3
    Non ho il codice a portata di mano in questo momento... domani ti mando tutto.
    Comunque il linee generali ho creato una pagina per l'inserimento dati e tramite un altra faccio il richiamo dei dati stessi.
    il questa seconda pagina faccio il controllo sul db e verifico le corrispondenze di username e password.
    Va male come soluzione?

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E' la parte del controllo quella che bisogna analizzare.

    Roby

  5. #5
    Ciao,
    finalmente ho il codice davanti e te lo posso inviare... dagli un occhiata poi fammi sapere.
    Grazie mille.
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@LANGUAGE="VBSCRIPT"%>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="stilenero.css" rel="stylesheet" type="text/css">
    </head>
    <%
    login = Trim(Request.Form("login"))
    password = Trim(Request.Form("password"))
    
    strprov = "DRIVER=Microsoft Access Driver (*.mdb); DBQ=" & Server.MapPath("/mdb-database/dati.mdb")
    set rs=Server.CreateObject("ADODB.Recordset")
    strq = "select * from dati where U='" & login & "' AND P='" & password & "'"
    rs.Open strq, strprov,3,3
    %>
    
    <body bgcolor="#3F6088" marginheight="0" marginwidth="0" leftmargin="0" topmargin="0" class="stilenero">
    <%
    if rs.recordcount <> 0 then
    	session("Authorized") = "Yes"
    	session("Gestore") = rs("N")
    	Response.Redirect("news.html")
    else
    	Response.Write("<p align=center><font size=4>I DATI INSERITI SONO ERRATI!!</font></p>")
    end if
    
    %>
    </body>
    </html>

    era da parecchi giorni che non entravo in questa pagina... ho già visto qualche schifezza.
    Fammi sapere.

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    1)
    codice:
    strq = "select * from dati where U='" & replace(login,"'","''") & "' AND P='" & replace(password,"'","''") & "'"
    2)
    codice:
    Response.Redirect("news.html")
    Non va bene: deve essere una pagina ASP.

    Roby

  7. #7
    Analizzando i due punti:
    il primo è un erroer di sintassi che può creare il problema su descritto? Cioè la facilità di accesso ad parte di tutti?

    per ciò che riguarda il secondo punto, la pagina richiama un html che praticamente non è altro che una pagina con 3 frame che richiamano 3 pagine asp all'interno delle quali è presente il controllo sulla variabile di sessione... un metodo un pò balordo che avevo scelto di utilizzare.

    Spero di essermi spiegato bene.
    Fammi sapere che ne pensi

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non è un errore di sintassi. Facilita la SQL Injection se non adotti quel sistema.

    Roby

  9. #9
    Ho capito... per ciò che riguarda l'SQL Injection che non so cosa vuol dire mi faccio un giro, come mi hai suggerito, e cerco il significato.

    Per il resto hai visto altre anomalie?

  10. #10
    Ho dato un occhiata e ho capito meglio il problema; grazie mille.

    Volevo chiederti/vi se una soluzione del genere, che ho adottato su altri siti è migliore o peggiore della precedente e nel caso dove sto sbagliando qualcosa:
    codice:
    if ((login = "aa1") and (password = "aa2")) or ((login = "bb1") and (password = "bb2")) then
    if (login = "aa1") then
        session("Authorized") = "Yes1"			
    else
        session("Authorized") = "Yes2"				
    end if
    Response.Redirect("area riservata.html")
    end if
    fatemi sapere.
    Grazie mille.

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.