Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Formularze i obrazki zabezpieczające
Forum PHP.pl > Forum > Przedszkole
owned
Witam!

Chcę zabezpieczyć formularz kontaktowy na stronie przed robocikami. Uzyję do tego sposobu na przepisanie kodu z obrazka. Czy napisanie skryptu który załaduje losowo 1 z 5 obrazków dostatecznie pozwoli chronić formularz, czy też roboty bez problemu obejdą takie zabezpieczenie?
luki100011
Skorzystaj z gotowca np:
http://recaptcha.net/


to tylko 5 kombinacji łatwo trafić w ciemno znając opcje.
Adis92
Ja używam takiego prostego tokena
Kod generujący:
  1. <?
  2. function passgen() {
  3. $nr = floor(time() / 3600);
  4. srand(array_sum(explode(" ", microtime())) * 100000);
  5. $a = rand(0, min(getrandmax(), $nr));
  6. $b = $nr - $a;
  7. $a = base_convert($a, 10, 36);
  8. $b = base_convert($b, 10, 36);
  9. $a = strrev(str_pad($a, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT));
  10. $b = str_pad($b, max(strlen($a), strlen($b)), 0, STR_PAD_LEFT);
  11. for($i = 0; $i < strlen($a); $i++) $pass .= $a[$i].$b[$i];
  12. return $pass;
  13. }
  14. header("Content-type: image/png");
  15. $img = imagecreate(140, 30);
  16. $background = imagecolorallocate($img, 255, 255, 255);
  17. $textcolor = imagecolorallocate($img, 65, 162, 223);
  18. imagestring($img, 5, 10, 7, passgen(), $textcolor);
  19. imagejpeg($img);
  20. imag
  21. ?>

Kod sprawdzający poprawność:
  1. function passcheck($pass) {
  2. $nr = floor(time() / 3600);
  3. for($i = 0; $i < strlen($pass); $i++)
  4. if($i % 2 == 0) $a .= $pass[$i]; else $b .= $pass[$i];
  5. $a = base_convert(strrev($a), 36, 10);
  6. $b = base_convert($b, 36, 10);
  7. if($a + $b <= $nr && $a + $b >= $nr - 2) return true;
  8. return false;
  9. }

Ps. Ten kod nie jest napisany przeze mnie ale nie pamiętam autora.
Flameman
Lub też zamiast korzystać z gotowców poducz się PHP gd,wtedy niedość,że zdobędziesz nową wiedze,to jeszcze bedziesz miał unikalne catchpa:)
Możesz skorzystać na przykład z tego(pierwsze kroki w gd): http://www.webtips.pl/post5040.html
owned
dzięki wielkie. Zabieram się do napisania własnego biggrin.gif czas poznać gd
luki100011
Jak już piszesz własne to zapoznaj się z tym:

http://pornel.net/captcha

Aby nie napisać captcha który nic nie daje poza utrudnieniem dla normalnego użytkownika.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.