Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 19-06-07, 17:55   #1 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
form con codice di sicurezza

Mi serviva un form antispam costruito in php

Io non ho trovato nulla in rete che non ci siano le librerie grafiche di mezzo per rappresentare il codice.

Io avevo pensato a javascript, dove il bot non dovrebbe trovarlo.

in ogni caso come posso fare?

ciao
alessiofbt non in linea   Rispondi citando
Vecchio 19-06-07, 18:51   #2 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Forze ci sono riuscito, ma ho ancora bisogno di qualche aiuto per continuare

ho usato delle costanti fisse che contenevano gli indirizzi di alcune .gif che contenevano lettere e numeri

poi ho fatto 6 rand del tipo:
$a = rand(27,36);

dove 27,36 andavano a trovare questo numero causale che serviva per riprendere la costante precedente in questo modo:

$ff1 = ${'cod'.$a};
$filename1 = "$folder/$ff1";

ripetuto questo per 6 volte, il numero degli elementi di codice

poi arriva il punto della lettura e quindi faccio:


$fp1 = @fopen($filename1,'rb');
$str1 = @fread($fp1,filesize($filename1));

dove $filename1 contiene l'indirizzo dell'immagine dell numero causale

ed infine

header('Content-type: image/gif');
echo "$str1";

sempre per 6 volte

e correttamente mi compaiono sulla pagina i sei numeri causali, di cui non so l'indirizzazione , quindi non potrei riconoscerli.

ma ora il fatto è che ho un problema con gli header content

nel senso che si aprono correttamente le immagini...ma ora il testo html che scrivo subito dopo gli echo non mi vengono visualizzati perchè vengono riconosciuti come formati gif.

ho provato anche a fare

header('Content-type: text/html');

ma è stato unutile?

come devo fare ora? non esiste poi un modo per chiudere questi header?
alessiofbt non in linea   Rispondi citando
Vecchio 20-06-07, 16:32   #3 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
uh?
alessiofbt non in linea   Rispondi citando
Vecchio 20-09-07, 14:52   #4 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
?
alessiofbt non in linea   Rispondi citando
Vecchio 20-09-07, 19:24   #5 (permalink)
User
 
Data di registrazione: Aug 2006
Messaggi: 311
Invia un messaggio tramite MSN a scar81
Io ho fatto questo.
Crea un file captcha.php e mettici questo codice.
Codice PHP:
<?
  session_start
();
  
$risultato rand(0,9).rand(0,9).rand(0,9).rand(0,9);
  
$immagine imagecreatefromjpeg("captcha.jpg");
  
$testo imagecolorallocate($immagine000);
  
$font imageloadfont("captcha.gdf");
  
imagestring($immagine$font13$risultato$testo);
  
$_SESSION['controllo_captcha'] = $risultato;
  
header("Content-type: image/jpeg");
  
imagejpeg($immagine);
?>
Il file captcha.jpg deve essere un immagine 85x30, ti allego quella che uso io. Poi nella stessa cartella devi mettere il font in formato gdf, ti allego zippato quello che uso io.

poi in fondo al form metti una cosa del genere:
Codice HTML:
<tr>
     <td>Codice di controllo</td>
     <td>
     <img src="captcha.php"><br>
     Il codice qui sopra è <input type="text" name="chiave">
     </td>
</tr>
e prima di mandare un'email fai questo semplcie controllo
Codice PHP:
if($chiave!="" AND $_SESSION['controllo_captcha']==$chiave) {
    
// manda email
}else{
   
// segnala che il codice è sbagliato


Molto più semplice di quelli complessi che salvano file e cose del genere. Poi questo è molto personalizzabile, puoi mettere la foto che vuoi al posto dei numeri o puoi modificare il file usando imagettftext invece di imagestring, così puoi usare qualsiasi font ttf.
Immagini allegate
Tipo di file: jpg captcha.jpg (1.8 KB, 111 visite)
Files allegati
Tipo di file: zip captcha.zip (2.2 KB, 103 visite)
__________________
www.negoziobenessere.it
scar81 non in linea   Rispondi citando
Vecchio 22-09-07, 21:53   #6 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Quote:
scar81 Visualizza il messaggio
Io ho fatto questo.
Crea un file captcha.php e mettici questo codice.
Codice PHP:
<?
  session_start
();
  
$risultato rand(0,9).rand(0,9).rand(0,9).rand(0,9);
  
$immagine imagecreatefromjpeg("captcha.jpg");
  
$testo imagecolorallocate($immagine000);
  
$font imageloadfont("captcha.gdf");
  
imagestring($immagine$font13$risultato$testo);
  
$_SESSION['controllo_captcha'] = $risultato;
  
header("Content-type: image/jpeg");
  
imagejpeg($immagine);
?>
Il file captcha.jpg deve essere un immagine 85x30, ti allego quella che uso io. Poi nella stessa cartella devi mettere il font in formato gdf, ti allego zippato quello che uso io.

poi in fondo al form metti una cosa del genere:
Codice HTML:
<tr>
     <td>Codice di controllo</td>
     <td>
     <img src="captcha.php"><br>
     Il codice qui sopra è <input type="text" name="chiave">
     </td>
</tr>
e prima di mandare un'email fai questo semplcie controllo
Codice PHP:
if($chiave!="" AND $_SESSION['controllo_captcha']==$chiave) {
    
// manda email
}else{
   
// segnala che il codice è sbagliato


Molto più semplice di quelli complessi che salvano file e cose del genere. Poi questo è molto personalizzabile, puoi mettere la foto che vuoi al posto dei numeri o puoi modificare il file usando imagettftext invece di imagestring, così puoi usare qualsiasi font ttf.
si si...andrebbe bene però se ho un server linux.....

invece avendo un server windows le librerie GD non le ho disponibili e di conseguenza non posso usare nessun sistema captcha

ciao
alessiofbt non in linea   Rispondi citando
Vecchio 25-09-07, 20:13   #7 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
vabbè, provo allora a pensarne una io, ditemi se è un sistema sicuro


mettiamo il caso che ad ogni form compare una domanda a semplice testo del genere:

fai la somma di tre con cinque e dividilo per due

dove può variare in:

addiziona tre con cinque e dividi per due
fai tre più cinque e il risultato dividilo per due
ecc....

Secondo voi un bot riesce a capire?

chiaramente se il risultato viene sbagliato, una,due,tre volte poi gli viene bloccato l'accesso ad ip, che dite?
alessiofbt non in linea   Rispondi citando
Vecchio 26-09-07, 10:23   #8 (permalink)
User
 
Data di registrazione: Aug 2006
Messaggi: 311
Invia un messaggio tramite MSN a scar81
Sì è fattibile, l'ho già visto su un altro sito. Però limitati ad una addizione fra tre numeri, altrimenti ti saltano fuori i decimali....
__________________
www.negoziobenessere.it
scar81 non in linea   Rispondi citando
Vecchio 03-10-07, 20:23   #9 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Quote:
scar81 Visualizza il messaggio
Sì è fattibile, l'ho già visto su un altro sito. Però limitati ad una addizione fra tre numeri, altrimenti ti saltano fuori i decimali....
ora che ci penso avevano messo su un antibot che anche senza librerie grafiche ti metteva in rand 4 immagini di donne, e se tu selezionavi quella più brutta andavi avanti con il form

non ricordo il nome...azz
alessiofbt non in linea   Rispondi citando
Vecchio 04-10-07, 10:26   #10 (permalink)
User
 
Data di registrazione: Aug 2006
Messaggi: 311
Invia un messaggio tramite MSN a scar81
Ma quello è soggettivo!
__________________
www.negoziobenessere.it
scar81 non in linea   Rispondi citando
Vecchio 04-10-07, 20:24   #11 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
difficile che ora c'è un server bot cosi intelligente come contempt

Inizialmente pensavo di mettere calcoli più complessi, ma poi ho facilitato un pò

stavo pensando di fare anche una variazione con le lettere del tipo:

Se io metto le lettere OTSET al contrario cosa leggo?

oppure

Il contrario di veloce?
Il sinonimo di.....ecc...

oppure mettere questo gioco di parole abbinato ai calcoli

Collegato a un database di un migliaglio di parole può essere veramente un sistema intaccabile.

che ne pensate?
alessiofbt non in linea   Rispondi citando
Vecchio 05-10-07, 10:29   #12 (permalink)
User
 
Data di registrazione: Aug 2006
Messaggi: 311
Invia un messaggio tramite MSN a scar81
Se dovessi compilare un modulo dove mi fano una domanda del genere non capirei perchè la fai e ti prenderei per matto.
Fai così, crea una decina di captcha a mano (cioè non automatici, con paint o qualcosa del genere) e ogni volta ne carichi uno a random. Ogni tanto ne rifai una decina e vai avanti così. Tanto nessuno si sbatterebbe per fare un bot solo per il tuo sito, perchè dovrebbe modificarlo in continuazione.
__________________
www.negoziobenessere.it
scar81 non in linea   Rispondi citando
Vecchio 06-10-07, 01:35   #13 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Quote:
scar81 Visualizza il messaggio
Se dovessi compilare un modulo dove mi fano una domanda del genere non capirei perchè la fai e ti prenderei per matto.
Fai così, crea una decina di captcha a mano (cioè non automatici, con paint o qualcosa del genere) e ogni volta ne carichi uno a random. Ogni tanto ne rifai una decina e vai avanti così. Tanto nessuno si sbatterebbe per fare un bot solo per il tuo sito, perchè dovrebbe modificarlo in continuazione.
si all'inizio avevo fatto uno script di random image, ma il fatto è che alla fine il il bot capisce eccome... per esempio potrebbe prendere nota della grandezza totale dell'immagine o del numero di colori....tanto voglio dire le immagini che girano sono sempre le stesse

img1.jpg
img2.jpg
img3.jpg

e anche se nascoste sotto i get image per non mostrare il nome file non servirebbe poi a molto, con il captcha invece utilizzano la variazione dei colori proprio perchè i numeri vengono mstrati sempre in modo diverso, o con segni o altri simboli sopra di essi per rendere irriconoscibile l'immagine e incasinare il bot.

Quindi non so se cosi funziona o sbaglio?

Ultima modifica di alessiofbt : 06-10-07 01:37.
alessiofbt non in linea   Rispondi citando
Vecchio 08-10-07, 11:06   #14 (permalink)
User
 
Data di registrazione: Aug 2006
Messaggi: 311
Invia un messaggio tramite MSN a scar81
E' vero che la mia soluzione non è perfetta, ma per scardinare un sistema del genere un programmatore dovrebbe sbattersi per 1 ora come minimo per creare uno script che entri nel tuo form. E ti basterebbe cambiare le 10 immagini per buttare all'aria tutto il suo lavoro.
Lo farebbe solo se ne avesse un guadagno in termini di tempo. Ma se deve metterci un'ora per fare un sistema automatico, tanto vale che ti spamma a mano no??
__________________
www.negoziobenessere.it
scar81 non in linea   Rispondi citando
Vecchio 08-10-07, 16:26   #15 (permalink)
Banned
 
L'avatar di alessiofbt
 
Data di registrazione: Oct 2006
Ubicazione: Php City
Messaggi: 136
Quote:
scar81 Visualizza il messaggio
E' vero che la mia soluzione non è perfetta, ma per scardinare un sistema del genere un programmatore dovrebbe sbattersi per 1 ora come minimo per creare uno script che entri nel tuo form. E ti basterebbe cambiare le 10 immagini per buttare all'aria tutto il suo lavoro.
Lo farebbe solo se ne avesse un guadagno in termini di tempo. Ma se deve metterci un'ora per fare un sistema automatico, tanto vale che ti spamma a mano no??
No credimi con i sistemi che ci sono oggi niente diventa impossibile, con un sistema che ti ho fatto vedere io penso che un programmatore con le balls arriva a trovare un modo per baipassarlo in pochi minuti.

E' per questo che stò impiegando parecchio tempo a capire come renderlo invulnerabile.

Solo che il punto è questo, già come ho creato io il sistema è fin troppo noioso per un utente andarlo ad eseguire tutto per filo e per segno, figurati se lo incasino ancora di più.

Stavo pensando comunque di metterci anche un controllo ip, nel senso che se uno sbaglia più di tre volte è fuori gioco e e al posto di contempt.php gli viene cambiato con la stessa pagina ma senza uscita in contempt2.php cosi che avrà tutto il tempo che vuole per giocare

Comunque qualche rand con piccole immagini di pochi pixel la devo pur fare, abbinata magari a quello che già c'è ora

e qui però chiedo aiuto... come faccio a nascondere il nome delle immagini?

del tipo che il bot potrebbe andare a cercare;

<img src="numerocinque.jpg"> diverso da <img src="numerodue.jpg">

e ottenere 52

come le nascondo?

Ultima modifica di alessiofbt : 08-10-07 16:28.
alessiofbt non in linea   Rispondi citando
Rispondi
Tags: , , , , , , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:50.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.