Newsgroup: it.comp.www.php
Titolo: newsletter e session_id univoco

salve sto gestendo un modulo di newsletter per il fron-office
il problema / dubbio č questo dopo che l'utente inserisce i dati io eseguo 
l'insert nel db poi
devo mandare un mail di conferma per l'attivazione nel link per 
l'attivazione ci metto l'id del database ?
oppure posso usare qualche altro scabotage ?
p.s
esiste il limite di 255 caratteri per l'url ? normale che tramite form (get 
o post) ?
grazie ciao

 esiste il limite di 255 caratteri per l'url ? 
Esiste, di sicuro e' piu' di 255 caratteri, ma al momento non ho sotto
mano l'RFC che lo riguarda.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.


ok quindi genero l'hash dell'id e faccio l'update di questo valore in un 
campo della tabella prendo questo hash e lo uso
come link alla funzione che conferma l'attivazione
ma come lo genero ? ci sarà qualche md5 ? già pronta ?
grazie ciao

 ma come lo genero ? ci sar` qualche md5 ? gi` pronta ?
Il manuale, questo sconosciuto ...
http://www.php.net/md5
http://www.php.net/sha1
etc.
-- 
I am what I am, I do what I can


 
l'HTML eredita da SGML 1024 come lunghezza massima per ogni attributo piu'
un massimo tra tutti gli attributi..
cmq i browser dovrebbero supportarne sui 2048 come minimo..
-- 
www.iuz-lab.info


Hai ragione potevo evitarlo questo pardon
ciao.


c'è una cosa che non mi torna l'hash una stringa e sempre la stessa
:| mi sembra poco sicuro ... no  ?
tipo di 5 == e4da3b7fbbce2345d7772b0674a318d5
---

 tipo di 5 == e4da3b7fbbce2345d7772b0674a318d5
Ok, ora da e4da3b7fbbce2345d7772b0674a318d5 estrai 5 oppure un'altra
stringa che con md5 restituica sempre e4da3b7fbbce2345d7772b0674a318d5.
Creare collisioni su MD5 non e' alla portata di tutti anche se
ultimamente si sono trovate varie "scorciatoie" matematiche.


 tipo di 5 == e4da3b7fbbce2345d7772b0674a318d5
Una funzione di hash, per definizione, torna sempre lo stesso output,
dato lo stesso input. E` studiata matematicamente apposta per farlo. E
per restituire, dato un insieme casuale di dati in input, un insieme il
piu` "spalmato" possibile sul range di dati in output.
Le collisioni sono previste, anche se si cerca di evitarle.
Bye.
-- 
Alessandro Pellizzari

 ma come lo genero ? ci sarà qualche md5 ? già pronta ?
Yag. Presa e modificata al volo.
GLOBALS[chiave] è una parola chiave che preferisci da mettere nel file 
di configurazione dei vari siti in cui usi questa classe.
se il link di attivazione è 
http://www.mioserver.com/attivami.php?id=2&gruppo=4
$testo='Clicca il link per attivarti: <br/>:'.fx_link::secure_make($link).
mail (......
poi su attivami.php
if (fx_link::secure_verify($_SERVER['QUERY_STRING'])){
	....
Nessun db.
Tac
###########à
class fx_link {
	function secure_make($link){
		$url=parse_url($link);			
		return 
$link.'&_link_key='.md5(get_global_copy($GLOBALS['chiave'].urldecode($url['query']));
	}
	/*
	* nota: la chiave deve essere posta alla fine della querystring
	*/
	function secure_verify($querystring){
		$querystring=urldecode($querystring);		
		$offset=strpos($querystring,'&_link_key=');		
		$array_key=explode('&_link_key=',$querystring);
		if (!isset($array_key[1])){
			return false;	
		}
		$key=$array_key[1];		
		$querystring=substr($querystring,0,$offset);		
		if ($key==md5($GLOBALS['chiave'].$querystring)){
			return true;
		} else {
			return false;
		}		
	}	
}


Precisamente.
Se registri sul db come consigliato da setec, potresti tranquillamente 
mettere un campo nella tabella dell'utente, contenente un hash generato 
da un numero casuale.
Per proteggere invece dati che non registri e passi tramite url, invece, 
solitamente associ una password che conosci solo tu.
$pass='prova';
$stringa=md5($pass.$id);
così sai che se un utente si collega su pagina.php?id=3&chiave='4f34h398..'
è utente autenticato solo se ($_GET['chiave']==md5($pass.$_GET['id']).
Tac

 ha scritto nel messaggio 
news:Slrae.4501$ms1....@tornado.fastwebnet.it...

grazie 

 grazie 
Figurati.
ps: qualche post piu' sopra ho postato una classe statica che magari 
potresti provare, che aggiunge un hash ad un url arbitrario o verifica 
un hash in un url.
pps: come già postato su questo ng, se cerchi 'rainbow tables' in 
google, troverai qualcosa che potrebbe non piacerti.
ppps: il meccanismo di cui sopra è abbastanza sicuro, ovviamente, solo 
finchè $pass rimane segreta.
Tac


Della serie niente è sicuro :)
e si .... non mi piace:P
ri-tnks