Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    642

    evitare la modifica dei cookies

    e' possibile fare in modo di evitare che i cookyes vengano modificati in locale?

    ad esempio se io scrivo nel cookies:
    "5euro"
    poiche' l'articolo acquistato costa tanto,
    come posso impedire che qualche furbone mi modifica il cookie o che comunque la sua mdifica non abbia effetto perche' ,esempio, genera un errore?

    Escludendo le sessioni perhe non voglio usarle per questo,Potrei utilizzare un database che contiene il cookie e poi confrontarlo col cookie per vedere se coincide ma e' troppo lento
    qualche suggerimento

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    642
    ma scusa che centra come si usano i cookies peche mi hai dato questo indirizzo il mio e'un prioblema di sicurezza

  4. #4
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    ma scusa tu quandi inizi un "pranzo" cominci dalla frutta ???

    http://sicurezza.html.it/guide/lezio...&idlezione=135

    Sicurezza


    Cookies sicuri girano usualmente da script CGI, ma essi possono anche essere impostati o letti da Javascript. Un HTTP cookie non può essere usato per prendere dati dal vostro hard disk, indirizzi e-mail o appropriarsi di informazioni sulla persona. Infatti per i timori relativi alla sicurezza, Java Script non permette l'accesso ai dati contenuti nei dischi rigidi: non può leggere i file, né scriverne di nuovi, né aprire cartelle. L'unica cosa permessa, sono i cookies. D'altra parte i cookie sono file di dati, la cui memorizzazione in una specifica cartella nell'hard disc non può creare problemi di sicurezza. Certo, precedenti implementazioni di Java e JavaSvript potrebbero permettere di farlo, ma per la maggior parte queste falle del sistema sono state protette. Tuttavia, un cookie HTTP può essere usato per seguire dove viaggiate su un particolare sito, ma questo tracciamento di siti può essere fatto anche senza utilizzare i cookies, che rendono solo più accurato il controllo.
    Solo il dominio che ha creato il cookie può accedervi. Per esempio, i cookies creati da una pagina Web legata a www.dominio.com non possono essere modificati o riferiti da una pagina Web di www.altrodominio.com.
    Mentre un cookie può tracciare il comportamento di un utente su un particolare computer, non può sapere quale persona sta usando il computer. Al più, il cookie può riconoscere che da un certo computer si sta visitando ancóra una pagina Web, ma non c'è modo di conoscere quale specifica persona opera alla tastiera!
    un cookie può essere immagazzinato temporaneamente nella memoria del computer, oppure nell'hard disk (in questo caso, è possibile definire la data oltre la quale il cookie viene cancelato).

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    642
    per usare le tue parole inizio dalla frutta perche si vede che ho gia mangiato cioe so gia come si usa e compagnia bella la mia e' uan domanda avanzata.
    pure il tuo secondo articolo e' fuori luogo.
    la mia domanda dice espicitamente che ci sono dei problem idi sicurezza e va oltre cioe:
    come evitare che un tizio apra la sua cartellina coi cooky e mi cambi il contenuto.
    ma l'hai letto bene a domanda
    li si parla di creare immagini dei cookies nei database ecc.. per evitare i problem idi sicurezza e tu mi parli di problemi di sicurezza e di come si usano i cookies

  6. #6
    Si penso che la risposta di viki sia proprio off-topic

    Si i cookies possono essere modificati dall'utente finale e anche condivisi, esportati ecc.

    Il sistema che hai segnalato è un buon metodo per risolvere il primo problema:
    chiave random, lunga e univoca all'aquisto, es: "US7329ASD8438J", che scrivi nel cookie e nel DB, e nel DB scrivi a cosa corrisponde quella chiave.
    Eventualmente puoi aggiungere nel DB informazioni sul client (IP e/o browser), e data di scadenza, per limitare la possibilità che altri lo utilizzino, ma lo farei solo se l'accesso all'articolo è limitato ad un breve periodo

    Oppure potresti cifrare i valori prima di scriverli sul cookie, e facendo attenzione di cifrare anche l'ID dell'articolo acquistato per evitare che il cookie possa essere riutilizzato per altri articoli non acquistati, e magari aggiungendo nel cookie un CRC code di tutti i valori che hai scritto

    Io preferisco il primo metodo

  7. #7
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Originariamente inviato da dizionario
    Si penso che la risposta di viki sia proprio off-topic
    Off topic ?

    Solo perchè cerco di fare in modo che si possano avere maggiori dettagli ed informazioni su quanto si vuole realizzare???

    Perchè invito la gente a riflettere su quanto sta facendo e non mi limito a postare righe di codice che il 99% delle volte neanche comprendiamo??

    L'importante è che funzioni, poi se capiamo a che serve o cosa fa che importanza può avere... ???

    Questo è Off Topic???

    Bene la prossima volta semplicemente eviterò di rispondere alle discussioni che avrà aperto questo autore...

    In tutti i casi ecco il codice che permette la cifratura delle informazioni da scrivere sul cookie che viene generato, tutto il resto è noia .... quello che segue è SOLO un esempio, adattabile facilmente alle esigenze più varie:
    codice:
    <%
    Class cBase64
    	Private Base64Chars
    	Private arBase64Chars
    	Private Length
    	
    	Private Sub Class_Initialize()
    		Base64Chars = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
    		arBase64Chars = Array("","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/")
    	End Sub
    
    	Public Function Decode(strIn)
    		Dim w1, w2, w3, w4, n, strOut
    		Set strOut = new cStringBuilder
    		Length = Len(strIn) 
    		For n = 1 To Length Step 4
    			w1 = mimedecode(Mid(strIn,n,1))
    			w2 = mimedecode(Mid(strIn,n+1,1))
    			w3 = mimedecode(Mid(strIn,n+2,1))
    			w4 = mimedecode(Mid(strIn,n+3,1))
    			If w2 >= 0 Then strOut.Write Chr(((w1 * 4 + (w2 \ 16)) And 255))
    			If w3 >= 0 Then strOut.Write Chr(((w2 * 16 + (w3 \ 4)) And 255))
    			If w4 >= 0 Then strOut.Write Chr(((w3 * 64 + w4) And 255))
    		Next
    		Decode = strOut.Value
    		Set strOut = Nothing
    	End Function
    	
    	Public Function Encode(strIn)
    		Dim c1, c2, c3, w3, w4, n , strOut , chr0 ,ar
    		Set strOut = new cStringBuilder
    		chr0 = Chr(0)
    		Length = Len(strIn) 
    		For n = 1 To Length  Step 3		
    			c1 = Asc(Mid(strIn, n, 1))
    			c2 = Asc(Mid(strIn, n + 1, 1) + chr0)
    			c3 = Asc(Mid(strIn, n + 2, 1) + chr0)
    			If Length  >= n + 1 Then 
    				w3 = (c2 And 15) * 4 + (c3 \ 64)
    			Else 
    				w3 = -1
    			End If
    			If Length >= n + 2 Then 
    				w4 = c3 And 63 
    			Else 
    				w4 = -1
    			End If
    			strOut.Write mimeencode(c1 \ 4) + mimeencode((c1 And 3) * 16 + (c2 \ 16)) + mimeencode(w3) + mimeencode(w4)
    		Next
    		on error goto 0
    		Encode = strOut.Value
    		Set strOut = Nothing
    	End Function
    	
    	Private Function mimeencode(intIn)
    		if intIn>=0 then 
    			mimeencode = arBase64Chars(intIn) 
    		else
    			mimeencode = ""
    		End if
    	End Function
    
    	Private Function mimedecode(strIn)
    		If strIn = "" Then 
    			mimedecode = -1 
    		Else
    			mimedecode = InStr(Base64Chars, strIn) - 1
    		End If
    	End Function
    	
    End Class
    
    Class cStringBuilder
    	Private Count
    	Private arLength
    	Private arStrings()
    	
    	Public Increment
    	
    	Private Sub Class_Initialize()
    		Clear()
    	End Sub
    
    	Public Function Clear()
    		Count 			= 0
    		Increment		= 1000
    		Redim arStrings(0)
    		arLength 		= 1
    	End Function
    
    	
    	Public Sub Write(value)
    		if Count=arLength then 
    			arLength=Count+Increment
    			Redim Preserve arStrings(arLength)
    		end if
    		arStrings(Count)=value
    		Count=Count+1
    	End Sub
    	
    	
    	Public Property Let Value(strValue)
    		Clear()
    		Write strValue
    	End Property
    
    	Public default Property Get Value()
    		Value = Join(arStrings,"")
    	End Property
    	
    	Private Sub Class_Terminate()
    		Erase arStrings
    	End Sub
    
    End Class
    
    dim cookie_name
    cookie_name = "cookie_name"
    
    Response.Cookies("MyCookie") = "Il mio primo cookie"
    Response.Cookies(cookie_name)("date") = date 
    
    RANDOMIZE
        rnd_n = int(9999999*Rnd(1))
        Response.Cookies(cookie_name)("code") = rnd_n
        loading_code = rnd_n
    
    Response.Write(Request.Cookies("MyCookie")) &"
    "
    Response.write date &"
    "
    Response.write loading_code &"
    "
    
    Set Base64 = new cBase64
    s64 = Base64.Encode(Request.Cookies("MyCookie"))
    Response.Write s64 & "
    "
    
    Set Base644 = new cBase64
    s644 = Base64.Encode(loading_code)
    Response.Write s644 & "
    "
    
    Set Base64 = Nothing
    Set Base644 = Nothing
    
    %>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    642
    grazie ad entrambi, si utilizzero sia cifratura che database poiche lasicurezza e' la prima cosa ho deciso.

    Lo script di cifratura e' valido soprattuto perche' il tempo di esecuzione e di 0,00 secondi

  9. #9
    Prego cipcip, per me le 2 soluzioni sono alternative,
    se nel cookie metti solo la key random e tieni tutte le info sul DB
    non vedo quali ulteriori vantaggi possa dare la cifratura del cookie

    Scusa viki per aver detto che forse eri off-topic
    era solo per farti capire che stavi facendo il copia e incolla dai siti sbagliati

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.