Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    48

    Impedire aggiornamento database

    Non so se sia la sezione giusta, ma provo a scrivere qui.

    Ho un form in ASP che consente di proporre dei siti nel mio; ho messo alcuni filtri nel file asp che aggiorna per impedire che vengano scritte schifezze (anche se i siti vengono approvati prima di andare on line) che normalmente funziona.
    C'è qualche furbo che ha aggirato i filtri probabilmente montando un file ASP da qualche parte aggirando i miei filtri e riempendomi continuamente il database di ogni cosa; in ogni caso, non so come possa fare diversamente, riesce a scrivere nel database.
    C'è qualche modo/codice da inserire nel codice ASP che consenta l'aggiornamento del database solo se la richiesta proviene dal form presente ad un determinato indirizzo web oppure un determinato IP?
    E' una cosa che va gestita direttamente dai permessi del server oppure anche in ASP?

    Grazie

    Giovanni

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    48
    Ti ringrazio, ma per quel che capisco questi sono metodi per impedire la visualizzazione di inserimenti di schifezze, ma non impediscono l'inserimento nel data base di dati se viene utilizzato un form in un altro server.
    Forse la cosa può essere gestita solo da IIS (ho Windows)?

    Giovanni

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Veramente il suggerimento c'e'... ho voluto controllare prima di proporlo io

    IF INSTR(Request("HTTP_REFERER"), "http://www.mysite.com/") < 1 Then
    Response.Redirect "Menu.asp"
    End If

    Tradotto: se la pagina di provenienza (e quindi la richiesta) non appartiene al tuo sito...

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    48
    Ti ringrazio, ho appena inserito il codice e vediamo un po' che succede... anche se secondo me il filtro è aggirabile.

    Se metti il file form.asp nel tuo server che aggiorna il file che si occupa di inserire i dati nel database updateform.asp sempre nel tuo server e in quest'ultimo metti il codice di aggiornamento seza filtri con l'indirizzo web del mio database da aggiornare (mettiamo che lo conosci) mi sa che ci riesci ugualmente; non credi?

    Giovanni

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da tutte88
    Ti ringrazio, ho appena inserito il codice e vediamo un po' che succede... anche se secondo me il filtro è aggirabile.

    Se metti il file form.asp nel tuo server che aggiorna il file che si occupa di inserire i dati nel database updateform.asp sempre nel tuo server e in quest'ultimo metti il codice di aggiornamento seza filtri con l'indirizzo web del mio database da aggiornare (mettiamo che lo conosci) mi sa che ci riesci ugualmente; non credi?

    Giovanni
    Non ci ho capito nulla del giro ma solitamente i db stanno in cartelle accessibili solo dalle applicazioni interne e non da server esterni

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    48
    ... infatti nonostante il filtro che ho messo ho già schifezze nel database...
    Mi sa appunto che si debba lavorare nei permessi di scrittura della cartella; ma se devo comunque lasciare la possibilità ad utenti di scrivere nel form devo lasciare i permessi di scrittura da utente web...
    "solitamente i db stanno in cartelle accessibili solo dalle applicazioni interne.. "; hai idea di come si faccia a fare in modo che sia così da IIS?

    Grazie

  8. #8
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Hai provato a difenderti da SQL Injection?
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da tutte88
    ... infatti nonostante il filtro che ho messo ho già schifezze nel database...
    Mi sa appunto che si debba lavorare nei permessi di scrittura della cartella; ma se devo comunque lasciare la possibilità ad utenti di scrivere nel form devo lasciare i permessi di scrittura da utente web...
    "solitamente i db stanno in cartelle accessibili solo dalle applicazioni interne.. "; hai idea di come si faccia a fare in modo che sia così da IIS?

    Grazie
    Forse sei scoperto sul fronte sql-injection ... ma finora hai solo parlato in italiano e non s'e' visto nessun codice ASP... per capire cosa succede realmente e' un po' pochino.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    48
    Eccolo!:

    <%
    Function ChkString(str)

    str = replace(str, "<", "&lt;", 1, -1, 1)
    str = replace(str, ">", "&gt;", 1, -1, 1)


    ChkString = str
    End Function

    ConnString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=e:\server\file.mdb"

    cat = Request.Form("cat")
    name = ChkString(Request.Form("name"))
    URL = Request.Form("url")
    key = ChkString(Request.Form("key"))
    Description = ChkString(Request.Form("des"))
    Email = Request.Form("mail")
    List = Request.Form("list")
    today = now()
    parent = Request.Form("parentid")
    IF INSTR(Request("HTTP_REFERER"), "http://www.sito.com/") < 1 Then
    Response.Write ("Non autorizzato")
    else
    if name = "" then
    Response.Write ("Perfavore scrivi il nome del sito - Usa la freccia indietro del broswer per tornare all'inserimento")
    else
    if URL = "http://" then
    Response.Write ("Perfavore scrivi l'URL - Usa la freccia indietro del broswer per tornare all'inserimento")
    else
    if cat = "--Please select one--" then
    Response.Write ("Perfavore seleziona la tua giusta categoria - Usa la freccia indietro del broswer per tornare all'inserimento")
    else
    if key = "" then
    Response.Write ("Perfavore scrivi le keywords - Usa la freccia indietro del broswer per tornare all'inserimento")
    else
    If InStr(key, "xyz") Then
    Response.Write ("Hai scritto un carattere non valido nel campo parole chiave- Usa la freccia indietro del broswer per tornare all'inserimento")
    else
    If InStr(Description, "xyz") Then
    Response.Write ("Hai scritto un carattere non valido nel campo descrizione - Usa la freccia indietro del broswer per tornare al'inserimento")
    else
    if Description = "" then
    Response.Write ("Perfavore scirvi la descrizione del sito - Usa la freccia indietro del broswer per tornare al'inserimento")
    else

    set my_conn= Server.CreateObject("ADODB.Connection")
    set rs = server.CreateObject("ADODB.RecordSet")
    my_Conn.Open ConnString
    set rscheck = my_conn.Execute ("Select URL from tabella where URL='" & URL & "'")

    if rscheck.eof then

    been_here_before="No"
    end if
    RScheck.close

    if been_here_before="No" then

    sql ="select * from tabella"

    RS.open Sql,my_conn,1,3
    RS.AddNew
    RS("Name")=name
    RS("url")=url
    RS("keyword")=key
    RS("category")=cat
    RS("description")=description
    RS("postdate")= now()
    RS("email")= Email
    RS("parentid")= parent
    RS("list")= list

    RS.update
    %>

    <%
    else
    Response.Write "Il tuo sito è già stato inserito nel nostro database"
    end if

    my_conn.Close
    set my_conn = nothing
    set rs = nothing

    end if
    end if
    end if
    end if
    end if
    end if
    end if
    end if
    %>

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.