Newsgroup: it.comp.www.php
Titolo: Sicurezza invio email

Ciao.
Sapete quale controlli č bene fare sui propri script email, che permettono
di mandare email via web?
Io controllerei per esempio il metodo di spedizione (post) e l'host dal
quale parte la chiamata allo script.
Sono metodi sicuri, o si puņ fare altro?
Ciao a tutti.

 Sono metodi sicuri, o si pur fare altro?
Utilizza le sessioni in modo che il client deve supportarle per poter
inviatre il messaggio e utilizza un campo contenente un hash per
"autenticare" l'invio in modo che sei sicuro che il client ha
visualizzato almeno la pagina contenente la form di inserimento ed ha
dovuto farne il parsing, eventualmente utilizza un sistema per
cambierare in modo random la struttura del campo hidden in modo che non
sia estraibile semplicemente utilizzando una espressione regolare.
Tieni presente che sono soltanto placebi, un buon programmatore sara'
sempre in grado di emulare l'invio.
Per maggior sicurezza inserisci nelle intestazioni della mail l'IP del
mittente (anche l'IP inoltrato da un eventuale proxy server se
presente).
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.

 presente).
eventualmente questa è una semi garanzia :p

 non so se si pur aggirare in qualche modo
Facile, e' sufficiente creare una richiesta HTTP ad-hoc.
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C


 Facile, e' sufficiente creare una richiesta HTTP ad-hoc.
grazie, ho messo una serie di controlli
penso che il più efficace sia la sessione
ovvero il controllo della sessione alla spedizione
almeno spero :)


Non conosco questi metodi per beccare i vari dati
cmq mi stai dicendo che se uno è bravo bravo non c'è niente da fare? :p
La sessione l'ho usata x vedere se è abilitata la sessione, quindi se apre
la mia pagina
perchè non sapevo si potesse simulare la sessione
inoltre sulla sessione metterei un contatore, per limitare il numero di mail
così se uno vuole fare scherzi per mandare tante mail con il mio servizio,
cerco di bloccarlo
cerco... :(

 di mail
Anche questo e' inutile perche' e sufficiente non mantenere la stessa
sessione tra una chiamata e l'altra. Migliore sarebbe un controllo
dell'IP di provenienza e dell'User Agent anche se, pure in questo caso
e' possibile bypassarlo.
-- 
I am what I am, I do what I can


ffshow wrote:

hai pensato all'ultima moda?
Un numero o testo scritto su un'immagine a sfondo confuso da inserire come
conferma, chiaramente il numero cambia ad ogni refresh della pagina.
Non sto a spiegarti come funziona, penso l'avrai incontrato su internet
qualche volta.
Ciao

 come conferma, 
http://www.phpclasses.org/browse/package/1538.html
http://www.phpclasses.org/browse/package/1329.html
-- 
I am what I am, I do what I can


 
beh, mi aspettavo anche una conferma o meno della validità del metodo ;-)

 e' possibile bypassarlo.
quello che non mi č chiaro č come si fanno le chiamate
io penso al browser, dove al limite provi a passare i valori tramite url
tu parli di altri metodi per chiamare una pagina web?
per esempio se usavo un cookie, uno deve cancellarlo a mano per azzerarlo
ma visto che non ho ben capito la questione, mi sa proprio che non va a
finire cosě vero :p

 beh, mi aspettavo anche una conferma o meno della validità del metodo
Dipende molto dal limite di efficienza calcolato tra il servizio
protetto ed il tempo necessario "all'hacking".
Un software di OCR puo' permettere di "fregare" anche sistemi di questo
tipo specialmente se diversi dal tipo utilizzato in passato da
Altavista.com per il submit dei siti.


 qualche volta.
si si l'ho visto
ma anche quello penso sia "fregabile", è un pò come usare un hidden random,
no?
poi cmq come faccio? lo genero nel form di spedizione e lo controllo nello
script di spedizione
ma come lo controllo?
come faccio a sapere che non è stato cambiato o usato una sola volta?
se le sessioni non servono a niente :p

 url tu parli di altri metodi per chiamare una pagina web?
In PHP:
http://www.php.net/fsockopen
http://www.php.net/curl
Via linea di comando
http://www.gnu.org/software/wget/wget.html
http://curl.haxx.se/


 se le sessioni non servono a niente :p
Ti consiglio di studiare meglio le sessioni, perche' e' evidente che
non sai di cosa si tratta veramente.


 
Tempo fa avevamo avuto già una discussione su OCR e il riconoscimento delle
scritte sulle immagini da parte di google, non so se ricordi, ad ogni modo,
certe immagini usate in certi siti sono davvero illeggibili IHMO, hai
presente quelle con scritte con caratteri non standard? (sembrano caratteri
liquefatti, ora non mi trovo un esempio a portata di mano se no lo
postavo), per non parlare degli sfondi che usano, ancor peggio, beh io alle
volte non ci azzecco a primo colpo figurati gli OCR. 
Comunque credo sia il metodo giusto per questo caso, per scroccare l'invio
di qualche email non credo si passi a metodi da 007 o superiori.

 metodi da 007 o superiori.
IMHO si risolve molto con un minimo di autenticazione a priori o, ancor
meglio, con un sistema che, all'atto del submit salva la mail in uscita
nel DB, manda una email di conferma al mittente con un link per
autenticare l'invio ed infine la invia. Il tutto farcito con un numero
massimo di mail giornaliere. In questo modo difficilmente ci saranno
abusi e se ci fossero sarebbero ben piu' tracciabili ed eventualmente
perseguibili.
