PDA

View Full Version : codifica in base 64


erremetal
08-09-2011, 14:28
Ciao a tutti,

qualcuno sa se la codifica in base 64, per nascondere gli indirizzi e-mail agli spam bot nel codice html è un metodo valido ed efficace? O è meglio usare qualcosaltro per essere più sicuri?

Grazie.

banryu79
08-09-2011, 15:03
Ciao a tutti,

qualcuno sa se la codifica in base 64, per nascondere gli indirizzi e-mail agli spam bot nel codice html è un metodo valido ed efficace? O è meglio usare qualcosaltro per essere più sicuri?

Grazie.
La codifica base64 non è nata e non serve per scopi di sicurezza.

Se sono uno spam bot sufficientemente intelligente, magari sono programmato per riconoscere le stringhe codificate in base64, e posso facilmente decodificarle.

Ergo, la codifica base64 non è un "metodo valido ed efficace per nascondere gli indirizzi e-mail agli spam bot".
Può funzionare se il lettore è un umano che non conosce la codifica in base64, ma anche in questo caso, conoscendo l'html, salterebbe all'occhio la stringa "anomala", dato il contesto.

Comunque si possono trovare moltissime soluzioni a questo problema.

erremetal
08-09-2011, 15:28
Ciao banryu, si infatti immaginavo che non fosse il massimo della sicurezza...volevo soltanto avere una conferma... :(

se cerchi su google riguardo all'argomento, purtroppo vedrai che in tanti (praticamente tutti) gli altri forum ne parlano come se fosse un metodo valido ed efficace contro gli spam bot, ma mi era venuto il dubbio...

su un form mail che deve passare il parametro dell'e-mail ad una pagina php dedicata all'invio dell'e-mail stessa, attualmente ho inserito un campo hidden, che assume il valore dell'e-mail stessa tramite una funzione php apposita(che ovviamente "stampa" il valore dell'e-mail del caso e assegna il valore al campo hidden). Ovviamente l'e-mail non si legge sulla pagina del sito,perchè il campo è hidden, però si vede nel codice html. C'è un modo facile e veloce per passare il valore dell'e-mail senza che venga visualizzata in alcun modo nel codice html?

Grazie :)

banryu79
08-09-2011, 16:19
se cerchi su google riguardo all'argomento, purtroppo vedrai che in tanti (praticamente tutti) gli altri forum ne parlano come se fosse un metodo valido ed efficace contro gli spam bot, ma mi era venuto il dubbio...

Il fatto è che una stringa base64 è faciulmente "sgamabile" per via del caratteristico carattere di padding ('=') presente a fine stringa (non sempre) e per via dell'alfabeto utilizzato (lettere maiuscole, minuscole, numeri e '+', '/', '=').

Io a dire il vero mi sono imbatutto in una discussione su StackOverflow circa diversi modi semplicie possibili per offuscare le stringhe base64 al fine di utilizzarle per scopi simili al tuo.
Se ti interessa, eccoti il link. (http://stackoverflow.com/questions/6795714/what-is-a-good-method-for-obfuscating-a-base-64-string)


su un form mail che deve passare il parametro dell'e-mail ad una pagina php dedicata all'invio dell'e-mail stessa, attualmente ho inserito un campo hidden, che assume il valore dell'e-mail stessa tramite una funzione php apposita(che ovviamente "stampa" il valore dell'e-mail del caso e assegna il valore al campo hidden). Ovviamente l'e-mail non si legge sulla pagina del sito,perchè il campo è hidden, però si vede nel codice html. C'è un modo facile e veloce per passare il valore dell'e-mail senza che venga visualizzata in alcun modo nel codice html?

Non sono pratico di queste questioni (ho programmato lato web pochissimo e robe insulse), percui non so darti consigli circostanziati, ma sono sicuro che altri del forum sapranno indirizzarti meglio.

Comunque a naso direi che se devi semplicemente rendere la stringa non riconoscibile come un indirizzo email appetibile per gli spam bot basta che la offuschi in qualche modo. Base64 secondo me è peggio che offuscarsela "in casa" proprio perchè è conosciutissimo, quindi è possibile riconoscere una stringa codifcata in base64 e riconvertirla. Se la stringa è offuscata con un tuo algoritmo, per quanto stupido, magari salta comunque all'occhio rispetto al contesto (codice html) però non è così facilmente decodificabile... ma qua si apre un argomento (sicurezza) su cui proprio non so niente...

Efem
08-09-2011, 16:28
su un form mail che deve passare il parametro dell'e-mail ad una pagina php dedicata all'invio dell'e-mail stessa, attualmente ho inserito un campo hidden, che assume il valore dell'e-mail stessa tramite una funzione php apposita(che ovviamente "stampa" il valore dell'e-mail del caso e assegna il valore al campo hidden). Ovviamente l'e-mail non si legge sulla pagina del sito,perchè il campo è hidden, però si vede nel codice html. C'è un modo facile e veloce per passare il valore dell'e-mail senza che venga visualizzata in alcun modo nel codice html?

Grazie :)

Non ho capito lo scenario, nel senso: hai più indirizzi email (es. info@, contatti@...) e per ogni sezione devi mandare una mail diversa?
In questo caso, non sarebbe meglio decidere nella pagina di invio mail, magari passando un parametro anonimo piuttosto che l'indirizzo email, a quale indirizzo inviare?

erremetal
08-09-2011, 16:50
grazie mille banryu! sei molto gentile! dopo ci dò un occhio.

no, è un sito in wordpress che ha una pagina php da me personalizzata, contenente un form mail ed una funzione che ciuccia l'e-mail dell'autore del caso. Se tu ad esempio entri nel post scritto da caio, nel form mail da me creato che compare sotto al post,tra i vari campi che l'utente compila per contattare caio (nome, descrizione, ecc), c'è anche il campo hidden con l'indirizzo e-mail di caio incodato in 64, che ovviamente vedi soltanto nel codice html e non sulla pagina stessa. l'indirizzo e-mail se lo prende automaticamente tramite la funzione get_the_author_email e poi la encoda in 64.

Quando l'utente che vuole contattare caio compila il form in tutti i campi, e preme sul pulsante invio, viene richiamata la pagina invio.php, dove il valore hidden contenente l'indirizzo e-mail viene decodato in automatico ed inserito, ovviamente decodato, nel campo "to" dell'email in partenza.

Io vorrei fare in modo che nella pagina col post di caio ed il form mail sottostante, l'indirizzo e-mail, richiamato tramite la funzione the_author_email (che è una funzione di wordpress) venisse assegnato ad esempio ad una variabile, che però non si deve vedere neanche nel codice html, e successivamente, nella pagina invio.php richiamo quel valore perchè venga messo nel campo "to" dell'e-mail in partenza.

spero di esser stato abbastanza chiaro, ce l'ho messa tutta XD

!fazz
08-09-2011, 17:50
potresti provare ad evitare gli spambot con la classica soluzione di mettere gli indirizzi email come immagini
http://www.sastgroup.com/tutorials/da-testo-a-immagine-in-php

erremetal
08-09-2011, 21:28
ok grazie ci do un occhio ;)