Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    150

    Questioni su sql injection, sessioni, e interrogazioni db

    Salve, ho alcuni dubbi:

    1) La funzione:

    nome = replace(replace(Request.Form("nomecampo"),"<","%3C "),"'","''")

    cosa assegna alla variabile "nome" ? Che significa "<","%3C" ?
    Evita l' sql injection ? Inoltre la funzione di cui sopra va bene per qualsiasi campo sia esso un campo di un form numero o una stringa


    2) Se io apro una sessione, ossia nell' header di una pagina asp di login scrivo il seguente codice:

    codice:
    <%
    username = "admin"
    password = "admin"
    
    If Lcase(Request.Form("username")) = Lcase(username) and Lcase(Request.Form("password")) = Lcase(password) then
    
    session("amministratore") = true
    Response.Redirect "Pagina_Loggati.asp"
    
    End if
    %>
    ( e in tutte le pagine che voglio siano protette, il codice <% IF Session("amministratore") <> True Then Response.Redirect "login.asp" End if %> ), come faccio a distruggere questa sessione? Cioè cosa dovrei scrivere dentro un file chiamato logout.asp ?


    3) Quest' ultima questione è la più delicata secondo me.
    Supponiamo che io debba interrogare un database; allora uso il seguente codice ( per esempio ):

    codice:
    db_path = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("/mdb-database/nome_db.mdb")
    
    
    Set Rs = Server.CreateObject("ADODB.Recordset")
    Sql = "SELECT * FROM members WHERE username = '" & Request.Form("user") & "' AND password = '" & Request.Form("pass") & "'"
    Rs.Open Sql, db_path
    
    If Rs.EOF Then
    
    BLA BLA BLA ECC....
    %>
    Quello che noto è che ciò funziona ma quello che non capisco è come fa a funzionare se non ho aperto la connessione al database ? Cioè se non ho scritto:

    <%
    Set Conn = Server.CreateObject("ADODB.connection")
    Conn.open db_path
    %>

    Allora a cosa serve aprire la connessione?

    Se procedo così, al termine dello script è sufficiente che chiuda

    Rs.Close
    Set Rs = Nothing

    senza citare la chiusura della connessione....

  2. #2
    3) bella domanda, evidentemente se la apre da solo il recordset la connessione (visto che purtroppo non c'è solo un modo per aprire un recordset allora non so)

    2)per chiudere una session si fa session.abandon...non penso ci sia session(".....").abandon

    http://www.azpoint.net/news/Manualistica_3092.asp

    1) il replace piu interno serve a modificare il carattere "<" nel relativo ascii (immagino)...non ne capisco l'utilità....il replace piu esterno serve per raddoppiare l'apice (funzione normale, già una precauzione per evitare intrusioni nel db)


    informati su google per l'sql injection, è un argomento ben trattato

    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    150
    Grazie Santino83_02!

    Risposte ai quesiti che ho posto da qualcuno che non ha dubbi.... ?

  4. #4
    2 sessione("amministratore")=false sarà ben più che sufficiente, non ti pare?

  5. #5
    3. potrebbe essere un effetto collaterale dell'uso del driver di office, e non di quello ado

  6. #6
    1. ma chi l'ha scritta quella funzione?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    150
    Originariamente inviato da optime
    2 sessione("amministratore")=false sarà ben più che sufficiente, non ti pare?

    Ok, grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    150
    Originariamente inviato da optime
    1. ma chi l'ha scritta quella funzione?

    L' ho vista in uno script ed eleborava i dati ricevuti da un form. Perchè cosa ha di strano?

  9. #9

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    150
    Originariamente inviato da optime
    3. potrebbe essere un effetto collaterale dell'uso del driver di office, e non di quello ado
    In che senso? cosa significa?

    io sto prendendo spunto da uno script e lo sto modificando tutto per farci quello che ci vorrei fare. In questo script guida non c'è la connessione al database, ma solo il "Set Rs.." e mi funziona, l'ho provato sul mio sito e non da errore.

    Allora, la sintassi corretta quale sarebbe?

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.