Newsgroup: it.comp.www.php
Titolo: Sicurezza di una form

Ciao a tutti,
 quali sono gli stratagemmi che utilizzate per proteggere una form
accessibile a tutti (niente aree riservate etc.) dallo spam?
Anche se OT sarebbero graditi consigli anche con l'utilizzo di JS o altro.
Grazie come sempre.
-- 
Amministratore
www.amiciamici.com
Giornalismo dal basso sull'amicizia e sul turismo
"Pronto Chi Bussa" il primo podcast di Parma e provincia?

 accessibile a tutti (niente aree riservate etc.) dallo spam? [CUT]
CAPTCHA.

Mr.Hummy ha scritto:

Procedimento per ottenerlo?
Creazione di una JPG utilizzando timestamp o cosa?


 Creazione di una JPG utilizzando timestamp o cosa?
Una semplice ricerca su Google e trovi il modo che più ti soddisfa.
http://www.google.it/search?hl=it&q=captcha+php&btnG=Cerca&meta=

Mr.Hummy ha scritto:

Ok, anche nei gruppi si trovano ogni sorta di codice e tecnica.
Se ho postato su questo newsgroup era per avere delle esperienze dirette
sul campo da programmatori che si scontrano con il problema spam
quotidianamente.
Grazie, breve ma intenso.


 Grazie, breve ma intenso.
Scusa se hai frainteso il tono della mia risposta: non ho mai usato
captcha, ma ho pensato di risponderti di usarlo perché dovrebbe essere
l'unica buona soluzione contro lo spam (qualcosina mi arriva anche per
il mio forum poco affollato). Siccome ho fatto una ricerca con google
e tra i primi risultati ho trovato codici apparentemente buoni, ho
deciso di spedirti lì con quel link.

Mr.Hummy ha scritto:

No, ok.
Pensavo mi avessi preso per uno dei tanti che vuole la pappa pronta.
In realtà avevo proprio bisogno di pensieri a riguardo di varie tecniche.
Visto che non ho riscosso un buon successo mi darò a visionare alcuni
form e discussioni che possono fare al caso mio.
Ti ringrazio.


 
Ti parlo senza esperienza in "campo" ma solo per sentito dire (poichè 
sviluppo per intranet non ho, per fortuna, problemi di spam!)
Il captcha è una soluzione funzionale ma non sicura in quanto se viene 
creata un'immagine semplice (poco distorta) è facilmente aggirabile, se 
l'immagine è complessa, è di difficile lettura anche per l'utente finale.
Un articolo di alcuni giorni fa sullo spam-captcha: 
http://punto-informatico.it/p.aspx?i=2035126
Non sono a conoscenza di applicazioni già esistenti ma una possibile 
soluzione potrebbe essere la risposta dell'utente ad una domanda 
"logica" quindi difficilmente (almeno per ora) aggirabile da bot o 
simili: personalmente ritengo più semplice (per l'utente) rispondere 
alla domanda "Quanto fa quattro diviso due" piuttosto che "decifrare" 
un'immagine arzigogolata.
	Francesco

 diviso due" piuttosto che "decifrare" un'immagine arzigogolata.
E` vero, e` molto piu` sicura, ma hai il problema 
dell'internazionalizzazione.
Inoltre, una volta che ti hanno beccato, fanno velocemente un antispam 
tramite un banale parser che riconosce 14 elementi (uno, due, ... piu, 
per, meno, diviso).
Oppure si usa un sexycaptcha. ;)
Bye.

 
Il mio esempio "Quanto fa quattro diviso due" era solo un...esempio!
Localizzazione a parte, frasi con una semplice soluzione ne puoi 
inventare tantissime (anche logiche), a quel punto realizzare un parser 
per trovare le soluzioni diventa complesso.
	Francesco

 per trovare le soluzioni diventa complesso.
E` vero, ma il concetto del captcha e` di non sbattersi troppo per 
combattere lo spam, perche` tanto troveranno sempre un sistema per 
fregarti, quindi fai qualcosa di veloce e abbastanza sicuro.
Se ti metti a costruire un database di domande logiche diventi vecchio.
Al massimo, mi e` venuto in mente adesso, puoi fare qualcosa tipo "che 
lettera manca?" e di fianco scrivi "V_sco Rossi" o "Pa_is Hilton", ecc. 
ecc. Ma ti serve un database e sperare che l'utente conosca un po' di 
gente famosa. :)
E anche questo e` aggirabile abbastanza facilmente.
Bye.

 accessibile a tutti (niente aree riservate etc.) dallo spam?
In passato ho utilizzato una tecnica di blacklisting IP-based
utilizzando l'IP dell'utente. Ad ogni submit del form cerco l'IP sulle
RBL degli spammer, se lo trovo lì già da subito gli do' un messaggio
generico di errore (un finto "mysql non disponibile riprova più
tardi" ;^)). Poi nella maschera di gestione dei post ho messo un
tastino "delete" da usare per cancellare le submission indesiderate
che oltre che cancellare il post aggiunge alla blacklist l'IP del
mittente.
Come risultato ho ottenuto una decisa sfoltita dello spam, ma non
certo totale, quella gente cambia IP più spesso di quanto una persona
comune batte le ciglia... :^(
bye!

Grazie come sempre.
http://groups.google.com/group/it.comp.www.php/msg/a7b9afa5273bb088
Per complicare le cose puoi pensare a salvare in sessione un paio di
checkpoint con timestamp - uno generato dalla home page, ecc.; cosi'
consideri "validi" solo i messaggi di chi e' passato dalla home e ci
ha messo almeno 20 secondi. Un robospammer non puo' permetterselo.
Oppure il pulsante INVIA del form, anziche' chiamarlo "command" o un
qualcosa di simile, lo chiami name="preview"; e ci metti un pulsante
SEND invisibile via CSS. Il tipico robospammer vede il pulsante SEND
e genera subito un "SEND=Invia".
E tu, if (isset($_REQUEST['Send'])) die("Salutam'a'ssoreta");
Leonardo
-- 
 What do you make, so fair and bright;
 What do you build with sails for flight;
 What do you weave with wool so white?

Quanto fa 2+2 e soluzioni del genere al momento sono migliori di
quelle captcha.
Si può chiedere qualcosa di ovvio in barba
all'internazionalizzazione,
tipo "che giorno è oggi ?" e randomizzare le domande chiedendo
informazioni che solo l'utente sa..
come "qual'è il tuo nome ? " "qual'è il tuo cognome ?" "Ridimmi il tuo
indirizzo email"
Facendo girare queste domande poi basta controllare che i valori
inseriti nel campo di controllo
corrispondano a quelli dei campi...
per fregare ancora di piu i bot basta sapere come funzionano piu o
meno...
loro hanno comunque bisogno di compilare i campi in modo corretto..
 nei campi telefonici mettere il numero nelle email mettere una email
e cos ì via...
noi tutti quando facciamo i form facciamo i campi standard "nome"
"cognome" "telefono" "email"
le varianti sono pochissime... facendo generare automaticamente gli id
di questo campi
si risolve il problema.. ovviamente dobbiamo conservare in variabili
di sessioni o in altre cose
i valori reali dei vari campi oppure invece che accederci per nome
accederci per numero...
Non so se sono stato chiaro ma penso che la soluzione sia almeno
provabile.
Vi farò sapere sto facendo in questi giorni un form di
registrazione...
se siete interessati successivamente posto il link del form e il
codice sorgente interessato (ammesso che funzioni :P)


 ha messo almeno 20 secondi. Un robospammer non puo' permetterselo.
Per esperienza personale, possono assicurare che questa è l'unica
tecnica valida tra quelle qui proposte (captcha, da solo, non basta).
Inoltre, attraverso jscript, puoi contare i caratteri che vengono
immessi *manualmente* nel form (il bot invia direttamente i dati, non
è che compila). Ovviamente non vale con il copia-incolla, quindi
dovresti utilizzarlo insieme alla prima tecnica (cioè, se il form è
stato compilato in meno di 2 secondi e se non ci sono state
digitazioni da tastiera, è un bot).

 tastiera,  un bot).
I controlli js non sono sempre affidabili, purtroppo. Inoltre se hai js a 
disposizione e` relativo fare controlli strani, basta impostare un campo 
con onsubmit, visto che gli spammer spesso disabilitano js, e` sufficiente.
Bye.