From 7898de2589563b77ac52048d4af83b8656d8b2cc Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 17:25:52 +0100 Subject: Added tinyboard integration stuff --- inc/config.php | 2 ++ 1 file changed, 2 insertions(+) (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index f4951a40..c657cd82 100644 --- a/inc/config.php +++ b/inc/config.php @@ -227,6 +227,8 @@ 'embed', 'recaptcha_challenge_field', 'recaptcha_response_field', + 'imgcaptcha_hash', + 'imgcaptcha_verify', 'spoiler', 'quick-reply' ); -- cgit v1.3 From 547b97ade57ac710ea58275e073b02fd88aba745 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 17:28:10 +0100 Subject: added config entries --- inc/config.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index c657cd82..b4039061 100644 --- a/inc/config.php +++ b/inc/config.php @@ -264,6 +264,11 @@ $config['recaptcha_public'] = '6LcXTcUSAAAAAKBxyFWIt2SO8jwx4W7wcSMRoN3f'; $config['recaptcha_private'] = '6LcXTcUSAAAAAOGVbVdhmEM1_SyRF4xTKe8jbzf_'; + $config['imgcaptcha'] = false; + $config['imgcaptcha_key'] = "cos losowego"; + $config['imgcaptcha_list'] = "/sciezka/do/pliku.txt"; + $config['imgcaptcha_images'] = "/sciezka/do/obrazkow"; // without a slash at the end + $config['imgcaptcha_question'] = "Was ist das?"; /* * ==================== * Post settings -- cgit v1.3 From 549ecc200e16789f5b0cde8b38b0c4a70759da1f Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 17:38:49 +0100 Subject: added imgcaptcha files --- inc/config.php | 4 ++ inc/ic-encrypt.php | 39 +++++++++++++++ inc/imgcaptcha.php | 126 +++++++++++++++++++++++++++++++++++++++++++++++ templates/post_form.html | 2 +- 4 files changed, 170 insertions(+), 1 deletion(-) create mode 100644 inc/ic-encrypt.php create mode 100644 inc/imgcaptcha.php (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index b4039061..ff4637ec 100644 --- a/inc/config.php +++ b/inc/config.php @@ -269,6 +269,10 @@ $config['imgcaptcha_list'] = "/sciezka/do/pliku.txt"; $config['imgcaptcha_images'] = "/sciezka/do/obrazkow"; // without a slash at the end $config['imgcaptcha_question'] = "Was ist das?"; + $config['imgcaptcha_time_limit'] = 90; // Kapcza wazna przez 90 sekund po wejsciu + $config['imgcaptcha_filler'] = "/plik/kliknijmie.png"; + $config['imgcaptcha_width'] = 128; + $config['imgcaptcha_height'] = 96; /* * ==================== * Post settings diff --git a/inc/ic-encrypt.php b/inc/ic-encrypt.php new file mode 100644 index 00000000..c0f499bd --- /dev/null +++ b/inc/ic-encrypt.php @@ -0,0 +1,39 @@ +skey, $text, MCRYPT_MODE_ECB, $iv); + return trim($this->safe_b64encode($crypttext)); + } + + public function decode($value){ + if(!$value){return false;} + $crypttext = $this->safe_b64decode($value); + $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); + return trim($decrypttext); + } +} +?> diff --git a/inc/imgcaptcha.php b/inc/imgcaptcha.php new file mode 100644 index 00000000..dae42752 --- /dev/null +++ b/inc/imgcaptcha.php @@ -0,0 +1,126 @@ +255) { return 255; } + if($a<0) { return 0; } + return $a; + } + function randString($length, $charset='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+=') + { + $str = ''; + $count = strlen($charset); + while ($length--) { + $str .= $charset[rand(0, $count-1)]; + } + return $str; + } + function generateCaptchaHash() { + $lines = getImages(); + $pick = pickImage($lines); + $enctext = $pick . ",," . time() . ",," . $_SERVER["REMOTE_ADDR"] . ",," . randString(12); + $converter = new Encryption; + return $converter->encode($enctext); + } + function ac_verifyHash($enctext, $output) { + //print "VERIFY: " . $enctext . " " . $output . "
"; + $converter = new Encryption; + $dectext = split(",,",$converter->decode($enctext)); + if(count($dectext)<4) return true; + $lines = getImages(); + $pick = $dectext[0]; + $time = time()-$dectext[1]; + if($time>$config["imgcaptcha_time_limit"]) return true; + $lp = $lines[$pick]; + for($i=1;$idecode($enctext)); + if(count($dectext)<=1) return; //SC + $lines = getImages(); + return $dectext[0]; + } + function generateImage($enctext) + { + $lines = getImages(); + $pick = getPick($enctext); + if(!isset($lines[$pick])) return; //SC + $src = imagecreatefrompng(getIPath($lines[$pick][0])); + if($src == FALSE) return; //SC + $maxc = 8; + $icw = $config["imgcaptcha_width"]; + $ich = $config["imgcaptcha_height"]; + $dst = imagecreatetruecolor($icw,$ich); + $srcxm = imagesx($src)-$icw; + $srcym = imagesy($src)-$ich; + $srcx = rand(0,$srcxm-1); + $srcy = rand(0,$srcym-1); + imagecopy($dst,$src,0,0,$srcx,$srcy,$icw,$ich); + + // Obfuscation step 1 + imagecopymergegray($dst,$dst,0,0,0,0,$icw,$ich,rand(20,45)); + // Obfuscation step 1.5 + for($i=0;$i<8;$i++) { + $w = rand(5,10); $h = rand(5,10); + $x = rand(0,$icw-1-$w); $y = rand(0,$ich-1-$h); + $x2 = rand(0,$icw-1); $y2 = rand(0,$ich-1); + imagefilledrectangle($dst,$x,$y,$x+$w,$y+$h,imagecolorat($dst,$x2,$y2)); + } + for($i=0;$i<5;$i++) { + $w = rand(20,40); $h = rand(20,40); + $x = rand(0,$icw-1-$w); $y = rand(0,$ich-1-$h); + imagecopymergegray($dst,$dst,$x,$y,$x,$y,$w,$h,0); + } + // Obfuscation step 2 + for($i=0;$i<$icw*$ich;$i++) { + $x = $i%$icw; $y = $i/$icw; + $c = imagecolorat($dst,$x,$y); + if(rand(0,4) == 2) { $nc = $c ^ rand(0,16777215); } + else { $nc = imagecolorat($dst,rand(0,$icw-1),rand(0,$ich-1)); } + if(rand(18,24)!=21 and $c != 0 and $c != 0xFF00FF) + { + $nc = ncfix(($c&0xFF) + rand(-16,16)) | ncfix((($c>>8)&0xFF) + rand(-8,8))<<8 | ncfix((($c>>16)&0xFF) + rand(-32,32))<<16; + $nc1 = $nc&0xFF ^ ($nc>>8)&0xFF ^ ($nc>>16)&0xFF; + } else { + $nc1 = $nc&0xFF; + if($nc1>($maxc*25)) $nc1 = $nc % ($maxc*25); + } + $nc2 = $nc1 | $nc1<<8 | $nc1<<16; + if(rand(0,1)==0) $nc2=$nc; + imagesetpixel($dst,$x,$y,$nc2); + } + // Obfuscation step 3 + for($i=0;$i diff --git a/templates/post_form.html b/templates/post_form.html index af8b22a7..ca5c7e12 100644 --- a/templates/post_form.html +++ b/templates/post_form.html @@ -66,7 +66,7 @@ -
+
{% config.imgcaptcha_question %}
Odswiez {{ antibot.html() }} -- cgit v1.3 From b6fc153c4532fac1514174e6904cdcb84530d42f Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 17:46:07 +0100 Subject: added a note --- inc/config.php | 3 +++ 1 file changed, 3 insertions(+) (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index ff4637ec..2c5f17f2 100644 --- a/inc/config.php +++ b/inc/config.php @@ -273,6 +273,9 @@ $config['imgcaptcha_filler'] = "/plik/kliknijmie.png"; $config['imgcaptcha_width'] = 128; $config['imgcaptcha_height'] = 96; + + // JESLI DODAJESZ IMGKAPCZE, NIE ZAPOMNIJ O TYM + //$config['additional_javascript'][] = 'js/imgcaptcha.js'; /* * ==================== * Post settings -- cgit v1.3 From 22654344714a85aebb7ecc8663595a1cf5dbdef6 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 17:53:22 +0100 Subject: added dependency note --- inc/config.php | 1 + 1 file changed, 1 insertion(+) (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index 2c5f17f2..5d039419 100644 --- a/inc/config.php +++ b/inc/config.php @@ -275,6 +275,7 @@ $config['imgcaptcha_height'] = 96; // JESLI DODAJESZ IMGKAPCZE, NIE ZAPOMNIJ O TYM + // Wymagane tez jQuery - o tam, nizej. //$config['additional_javascript'][] = 'js/imgcaptcha.js'; /* * ==================== -- cgit v1.3 From 67e9fb587220a677cc15c4b1f8efe2764b8b1955 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sat, 22 Dec 2012 18:27:57 +0100 Subject: all the fixes --- inc/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'inc/config.php') diff --git a/inc/config.php b/inc/config.php index 5d039419..c700d232 100644 --- a/inc/config.php +++ b/inc/config.php @@ -265,7 +265,7 @@ $config['recaptcha_private'] = '6LcXTcUSAAAAAOGVbVdhmEM1_SyRF4xTKe8jbzf_'; $config['imgcaptcha'] = false; - $config['imgcaptcha_key'] = "cos losowego"; + $config['imgcaptcha_key'] = "cos losowego"; // max 32 znaki $config['imgcaptcha_list'] = "/sciezka/do/pliku.txt"; $config['imgcaptcha_images'] = "/sciezka/do/obrazkow"; // without a slash at the end $config['imgcaptcha_question'] = "Was ist das?"; -- cgit v1.3