From 11bab0a9adde56cb653c268b29f2be06f6930392 Mon Sep 17 00:00:00 2001 From: discomrade Date: Wed, 5 May 2021 10:29:06 -0200 Subject: [PATCH] Add basic captcha --- captcha.php | 32 + inc/captchaconfig.php | 90 + inc/config.php | 10 + inc/instance-config.php | 5 + inc/lib/securimage/AHGBold.ttf | Bin 0 -> 144556 bytes inc/lib/securimage/securimage.php | 3771 +++++++++++++++++++++++++++++ post.php | 16 + templates/post_form.html | 11 + 8 files changed, 3935 insertions(+) create mode 100644 captcha.php create mode 100644 inc/captchaconfig.php create mode 100644 inc/lib/securimage/AHGBold.ttf create mode 100644 inc/lib/securimage/securimage.php diff --git a/captcha.php b/captcha.php new file mode 100644 index 00000000..d4e5eb2a --- /dev/null +++ b/captcha.php @@ -0,0 +1,32 @@ +__DIR__ . '/inc/captchaconfig.php')); + +$image->show(); + +$code=$image->getCode(false, true); + +$ip=$_SERVER['REMOTE_ADDR']; + +$query=prepare('INSERT INTO captchas(ip, code, time) VALUES(:ip, :code, NOW())'); +$query->bindValue(':ip', $ip); +$query->bindValue(':code', $code); +$query->execute() or error(db_error($query)); + +$query=prepare('SELECT count(*) from captchas where ip=:ip'); +$query->bindValue(':ip', $ip); +$query->execute() or error(db_error($query)); + +$count=$query->fetch()[0]; +if($count>10){ + $query=prepare('DELETE from captchas where ip=:ip ORDER BY time asc LIMIT 1'); + $query->bindValue(':ip', $ip); + $query->execute()or error(db_error($query)); +} diff --git a/inc/captchaconfig.php b/inc/captchaconfig.php new file mode 100644 index 00000000..793c0293 --- /dev/null +++ b/inc/captchaconfig.php @@ -0,0 +1,90 @@ + 275, // width of captcha image in pixels + 'image_height' => 100, // height of captcha image in pixels + 'code_length' => 6, // # of characters for captcha code + 'image_bg_color' => '#770000', // hex color for image background + 'text_color' => '#DDDD64', // hex color for captcha text + 'line_color' => '#DDDD64', // hex color for lines over text + 'noise_color' => '#DDDD64', // color of random noise to draw under text + 'num_lines' => 5, // # of lines to draw over text + 'noise_level' => 0.5, // how much random noise to add (0-10) + 'perturbation' => 0.75, // distoration level + + 'use_random_spaces' => true, + 'use_random_baseline' => true, + 'use_text_angles' => true, + 'use_random_boxes' => false, +'use_transparent_text' => false, + + 'wordlist_file' => 'words/words.txt', // text file for word captcha + 'use_wordlist' => false, // true to use word list + 'wordlist_file_encoding' => null, // character encoding of word file if other than ASCII (e.g. UTF-8, GB2312) + + // example UTF-8 charset (TTF file must support symbols being used + // 'charset' => "абвгдeжзийклмнопрстуфхцчшщъьюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ", + 'charset' => "2345689abdfgkmnpqsuwxyz", // capitals are more effort to type, removed confusable characters like o,O,0,1,l + + // 'ttf_file' => './AHGBold.ttf', // TTF file for captcha text + + //'captcha_type' => Securimage::SI_CAPTCHA_WORDS, // Securimage::SI_CAPTCHA_STRING || Securimage:: SI_CAPTCHA_MATHEMATIC || Securimage::SI_CAPTCHA_WORDS + + //'display_value' => 'ABC 123', // Draws custom text on captcha + + + /**** Code Storage & Database Options ****/ + + // true if you *DO NOT* want to use PHP sessions at all, false to use PHP sessions + 'no_session' => true, + + // the PHP session name to use (null for default PHP session name) + // do not change unless you know what you are doing + 'session_name' => null, + + // change to true to store codes in a database + 'use_database' => false, + + // database engine to use for storing codes. must have the PDO extension loaded + // Values choices are: + // Securimage::SI_DRIVER_MYSQL, Securimage::SI_DRIVER_SQLITE3, Securimage::SI_DRIVER_PGSQL + 'database_driver' => Securimage::SI_DRIVER_MYSQL, + + 'database_host' => 'localhost', // database server host to connect to + 'database_user' => 'lainchan', // database user to connect as + 'database_pass' => '', // database user password + 'database_name' => 'lainchan', // name of database to select (you must create this first or use an existing database) + 'database_table' => 'captcha_codes', // database table for storing codes, will be created automatically + + // Securimage will automatically create the database table if it is not found + // change to true for performance reasons once database table is up and running + 'skip_table_check' => false, + + /**** Audio Options ****/ + + //'audio_path' => __DIR__ . '/audio/en/', + //'audio_use_noise' => true, + //'audio_noise_path' => __DIR__ . '/audio/noise/', + //'degrade_audio' => true, + + 'no_exit'=>true, + + + 'log_file'=>'/dev/null', //This should be placed somewhere sensible. +); diff --git a/inc/config.php b/inc/config.php index 6324855f..a76d00de 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1779,6 +1779,16 @@ * ==================== */ + //Securimage captcha + //Note from lainchan PR: "TODO move a bunch of things here" + + $config['spam']['valid_inputs'][]='captcha'; + $config['error']['securimage']=array( + 'missing'=>'The captcha field was missing. Please try again', + 'empty'=>'Please fill out the captcha', + 'bad'=>'Incorrect captcha', + ); + // Meta keywords. It's probably best to include these in per-board configurations. // $config['meta_keywords'] = 'chan,anonymous discussion,imageboard,tinyboard'; diff --git a/inc/instance-config.php b/inc/instance-config.php index a3f52952..7ce79752 100644 --- a/inc/instance-config.php +++ b/inc/instance-config.php @@ -117,6 +117,11 @@ $config['url_banner'] = '/banners.php'; */ $config['spam']['enabled'] = false; +/* + * Basic captcha. See also: captchaconfig.php + */ +$config['securimage'] = false; + /* * Permissions */ diff --git a/inc/lib/securimage/AHGBold.ttf b/inc/lib/securimage/AHGBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..764b23d76ff19a9ea15f8abd10c4725d2ad03b67 GIT binary patch literal 144556 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 literal 0 HcmV?d00001 diff --git a/inc/lib/securimage/securimage.php b/inc/lib/securimage/securimage.php new file mode 100644 index 00000000..23a8feaa --- /dev/null +++ b/inc/lib/securimage/securimage.php @@ -0,0 +1,3771 @@ + + * @version 3.6.7 (March 2018) + * @package Securimage + * + */ + +/** + + ChangeLog + 3.6.7 + - Merge changes from 4.0.1-nextgen + - Increase captcha difficulty + - Add setting "use_text_angles". Enable to select a random angle and step value and draw each character at an angle in a step like fashion + - Add setting "use_random_spaces". Enable to insert 1-3 spaces between a random group of letters some of the time + - Add setting "use_random_baseline". Enable to draw letters at a random height instead of centered. Each character's baseline is a step up or down from the previous (not totally random) + - Add setting "use_random_boxes". Enable to draw a bounding box around one or more characters at random + - Improve performance of captcha generation when using distortion (perturbation) and noise (noise_level) + - Enable image anti-aliasing + - Make all text functions multibyte safe when using UTF-8 or other encodings for charsets and wordlists (using mbstring) + + 3.6.6 + - Not critical: Fix potential HTML injection in example form via HTTP_USER_AGENT (CVE-2017-14077) + + 3.6.5 + - Fix regex in replaceElements in securimage.js + - Update examples + - Exclude certain examples from Git autogenerated archives + + 3.6.4 + - Fix XSS vulnerability in example_form.ajax.php (Discovered by RedTeam. advisory rt-sa-2016-002) + - Update example_form.ajax.php to use Securimage::getCaptchaHtml() + + 3.6.3 + - Add support for multibyte wordlist files + - Fix code generation issues with UTF-8 charsets + - Add parameter to getCaptchaHtml() method to control display components of captcha HTML + - Fix database audio storage issue with multiple namespaces + + 3.6.2 + - Support HTTP range requests with audio playback (iOS requirement) + - Add optional config.inc.php for storing global configuration settings + + 3.6.1 + - Fix copyElement bug in securimage.js for IE Flash fallback + + 3.6 + - Implement CAPTCHA audio using HTML5