Gå til innhold

Få php til å lage bilder.


Anbefalte innlegg

Videoannonse
Annonse

er ikke helt sikker på vha du mener med securitygreie, men hvis det er er sånn ordsak(ja det er litt vanskelig å definere) som finnes på mange registrerings sider for mail og annet så ikke programmer kan registrere seg der automatisk:

 

en måte er da:

 


<?php

header ("Content-type: image/png");

$test = crypt(rand());



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, rand(0, 255), rand(0, 255), rand(0, 255));

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?>

 

nå lager denne riktignok ikke ord som gir noen særlig mening, hvis du vil ha det må :

$text = crypt(rand());

byttes ut med et array med mulige ord som du forhåndsvelger.

Lenke til kommentar

husker ikke helt i farten, men lurer på om det blir noe sånt:


<?php

header ("Content-type: image/png");

$test = rand();



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, rand(0, 255), rand(0, 255), rand(0, 255));

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?> 

har bare fjernet crypt.

Lenke til kommentar

tror det blir litt feil sånn for da kommer vel egentlig bare tall, hvis du vil ha tall og bokstaver kan du feks bruke:

 


<?php

function randStr( $length ) {

 if( $length > 36 ) {

    return "ERROR";

 }else{

    $str = md5(mktime());

    $cutoff = 31 - $length;

    $start = rand(0, $cutoff);

    return substr($str, $start, $length);

 }

}



header ("Content-type: image/png");

$test = randStr("10");



$im = @ImageCreate (100, 20)

    or die ("Something went wrong in the making of the image");

$background_color = ImageColorAllocate ($im, 255, 255, 255);

$text_color = ImageColorAllocate ($im, 0, 0, 0);

ImageString ($im, 3, 4, 4, $test, $text_color);

ImagePNG ($im);

?>



Lenke til kommentar

Om detta skal funke må jo php vite verdien av strengen i bildet. Derfor må du finne en lur måte å gjøre den tilgjengelig på, en enkel og usikker måte er jo å sende variablen med som en hidden post variabel.

Grunnen til at det mange steder er sånne bilder, er for å validere om det faktisk er ett menneske som registrerer seg og ikke ett script. Men ett script kan lett finne den skjulte post variablen, derfor er det ikke sikkert.

Du kunne jo lage det slik at hver gang sida blei lastet satte du teksten i bildet inn i en database og når brukern klikka på submit, blei teksten brukern tasta inn sjekka opp mot databasen. Mye rart en kunne finni på da...

Lenke til kommentar
hmm...

 

Hva med å styre passordet på tid? Ved å endre verifiseringsordet etter et tidsskjema, "vet" skriptet hvilket passord som skal returneres uavhengig av tilbakemelding fra klient.

Tviler på at det er så sikkert...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...