From b4ba2e5d733f449b7d7193ab2c5096e5e204c80e Mon Sep 17 00:00:00 2001 From: Exile Date: Sun, 31 Jan 2016 18:27:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20Re?= =?UTF-8?q?captcha=20=D0=BD=D0=B0=20=D0=B0=D0=B2=D1=82=D0=BE=D0=B7=D0=B0?= =?UTF-8?q?=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D1=83,=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B5=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20Composer=20=D0=9F=D0=B5=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D0=B8=D0=BC=20Recaptcha=20=D0=BD=D0=B0=20=D0=B0?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D0=B3=D1=80=D0=B0=D1=84=D1=83,=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D0=BC=20=D1=81?= =?UTF-8?q?=D0=BE=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81=D1=82=D0=B2=D1=83?= =?UTF-8?q?=D1=8E=D1=89=D1=83=D1=8E=20=D0=B7=D0=B0=D0=B2=D0=B8=D1=81=D0=B8?= =?UTF-8?q?=D0=BC=D0=BE=D1=81=D1=82=D1=8C=20=D0=9F=D0=BE=D0=B4=D0=BA=D0=BB?= =?UTF-8?q?=D1=8E=D1=87=D0=B0=D0=B5=D0=BC=20Twig=20=D0=BD=D0=B0=20=D0=B1?= =?UTF-8?q?=D1=83=D0=B4=D1=83=D1=89=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- composer.json | 5 +- composer.lock | 161 +++++++++++++++++- library/TorrentPier/.htaccess | 2 - library/TorrentPier/ReCaptcha/ReCaptcha.php | 97 ----------- .../TorrentPier/ReCaptcha/RequestMethod.php | 42 ----- .../ReCaptcha/RequestMethod/Post.php | 70 -------- .../ReCaptcha/RequestMethod/Socket.php | 104 ----------- .../ReCaptcha/RequestMethod/SocketPost.php | 120 ------------- .../ReCaptcha/RequestParameters.php | 103 ----------- library/TorrentPier/ReCaptcha/Response.php | 102 ----------- library/config.php | 1 - library/includes/functions.php | 2 - 12 files changed, 163 insertions(+), 646 deletions(-) delete mode 100644 library/TorrentPier/.htaccess delete mode 100755 library/TorrentPier/ReCaptcha/ReCaptcha.php delete mode 100755 library/TorrentPier/ReCaptcha/RequestMethod.php delete mode 100755 library/TorrentPier/ReCaptcha/RequestMethod/Post.php delete mode 100755 library/TorrentPier/ReCaptcha/RequestMethod/Socket.php delete mode 100755 library/TorrentPier/ReCaptcha/RequestMethod/SocketPost.php delete mode 100755 library/TorrentPier/ReCaptcha/RequestParameters.php delete mode 100755 library/TorrentPier/ReCaptcha/Response.php diff --git a/composer.json b/composer.json index be8f80381..ac45266f1 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,9 @@ "ext-curl": "*", "ext-mbstring": "*", "ext-tidy": "*", + "google/recaptcha": "^1.0", + "rych/bencode": "^1.0", + "twig/twig": "^1.0", "zendframework/zend-authentication": "^2.5", "zendframework/zend-cache": "^2.5", "zendframework/zend-config": "^2.5", @@ -45,4 +48,4 @@ "minimum-stability": "stable", "require-dev": {}, "prefer-stable": true -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 0fd56bd4d..4bbe492d5 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "e6739bd7b6bbdb589801c8d4a844c1be", - "content-hash": "e282b3bc3ab5775a06ec6def0cf2a906", + "hash": "9a65af4ba5edfe73ffdded1ea1b995f7", + "content-hash": "0074d54ee83fdffa1dec1fba0adc560d", "packages": [ { "name": "container-interop/container-interop", @@ -34,6 +34,163 @@ "description": "Promoting the interoperability of container objects (DIC, SL, etc.)", "time": "2014-12-30 15:22:37" }, + { + "name": "google/recaptcha", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/google/recaptcha.git", + "reference": "2b7e00566afca82a38a1d3adb8e42c118006296e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/google/recaptcha/zipball/2b7e00566afca82a38a1d3adb8e42c118006296e", + "reference": "2b7e00566afca82a38a1d3adb8e42c118006296e", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "4.5.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "ReCaptcha\\": "src/ReCaptcha" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Client library for reCAPTCHA, a free service that protect websites from spam and abuse.", + "homepage": "http://www.google.com/recaptcha/", + "keywords": [ + "Abuse", + "captcha", + "recaptcha", + "spam" + ], + "time": "2015-09-02 17:23:59" + }, + { + "name": "rych/bencode", + "version": "v1.0.0", + "target-dir": "Rych/Bencode", + "source": { + "type": "git", + "url": "https://github.com/rchouinard/bencode.git", + "reference": "d1b5c88f3fd7ff1f4167756f0ed63f970a32431c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rchouinard/bencode/zipball/d1b5c88f3fd7ff1f4167756f0ed63f970a32431c", + "reference": "d1b5c88f3fd7ff1f4167756f0ed63f970a32431c", + "shasum": "" + }, + "require": { + "php": ">=5.3.4" + }, + "require-dev": { + "phpunit/phpunit": "3.7.*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-0": { + "Rych\\Bencode": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ryan Chouinard", + "email": "rchouinard@gmail.com", + "homepage": "http://ryanchouinard.com" + } + ], + "description": "Bencode serializer for PHP 5.3+", + "homepage": "https://github.com/rchouinard/bencode", + "keywords": [ + "bencode", + "serialize" + ], + "time": "2014-01-13 00:34:03" + }, + { + "name": "twig/twig", + "version": "v1.24.0", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", + "reference": "3e5aa30ebfbafd5951fb1b01e338e1800ce7e0e8", + "shasum": "" + }, + "require": { + "php": ">=5.2.7" + }, + "require-dev": { + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.24-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com", + "homepage": "http://fabien.potencier.org", + "role": "Lead Developer" + }, + { + "name": "Armin Ronacher", + "email": "armin.ronacher@active-4.com", + "role": "Project Founder" + }, + { + "name": "Twig Team", + "homepage": "http://twig.sensiolabs.org/contributors", + "role": "Contributors" + } + ], + "description": "Twig, the flexible, fast, and secure template language for PHP", + "homepage": "http://twig.sensiolabs.org", + "keywords": [ + "templating" + ], + "time": "2016-01-25 21:22:18" + }, { "name": "zendframework/zend-authentication", "version": "2.5.2", diff --git a/library/TorrentPier/.htaccess b/library/TorrentPier/.htaccess deleted file mode 100644 index baa56e5a3..000000000 --- a/library/TorrentPier/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -order allow,deny -deny from all \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/ReCaptcha.php b/library/TorrentPier/ReCaptcha/ReCaptcha.php deleted file mode 100755 index b97a2ae25..000000000 --- a/library/TorrentPier/ReCaptcha/ReCaptcha.php +++ /dev/null @@ -1,97 +0,0 @@ -secret = $secret; - - if (!is_null($requestMethod)) { - $this->requestMethod = $requestMethod; - } else { - $this->requestMethod = new RequestMethod\Post(); - } - } - - /** - * Calls the reCAPTCHA siteverify API to verify whether the user passes - * CAPTCHA test. - * - * @param string $response The value of 'g-recaptcha-response' in the submitted form. - * @param string $remoteIp The end user's IP address. - * @return Response Response from the service. - */ - public function verify($response, $remoteIp = null) - { - // Discard empty solution submissions - if (empty($response)) { - $recaptchaResponse = new Response(false, array('missing-input-response')); - return $recaptchaResponse; - } - - $params = new RequestParameters($this->secret, $response, $remoteIp, self::VERSION); - $rawResponse = $this->requestMethod->submit($params); - return Response::fromJson($rawResponse); - } -} \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/RequestMethod.php b/library/TorrentPier/ReCaptcha/RequestMethod.php deleted file mode 100755 index 58015cb62..000000000 --- a/library/TorrentPier/ReCaptcha/RequestMethod.php +++ /dev/null @@ -1,42 +0,0 @@ - array( - 'header' => "Content-type: application/x-www-form-urlencoded\r\n", - 'method' => 'POST', - 'content' => $params->toQueryString(), - // Force the peer to validate (not needed in 5.6.0+, but still works - 'verify_peer' => true, - // Force the peer validation to use www.google.com - $peer_key => 'www.google.com', - ), - ); - $context = stream_context_create($options); - return file_get_contents(self::SITE_VERIFY_URL, false, $context); - } -} \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/RequestMethod/Socket.php b/library/TorrentPier/ReCaptcha/RequestMethod/Socket.php deleted file mode 100755 index dd2091c06..000000000 --- a/library/TorrentPier/ReCaptcha/RequestMethod/Socket.php +++ /dev/null @@ -1,104 +0,0 @@ -handle = fsockopen($hostname, $port, $errno, $errstr, (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout)); - - if ($this->handle != false && $errno === 0 && $errstr === '') { - return $this->handle; - } else { - return false; - } - } - - /** - * fwrite - * - * @see http://php.net/fwrite - * @param string $string - * @param int $length - * @return int | bool - */ - public function fwrite($string, $length = null) - { - return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length)); - } - - /** - * fgets - * - * @see http://php.net/fgets - * @param int $length - */ - public function fgets($length = null) - { - return fgets($this->handle, $length); - } - - /** - * feof - * - * @see http://php.net/feof - * @return bool - */ - public function feof() - { - return feof($this->handle); - } - - /** - * fclose - * - * @see http://php.net/fclose - * @return bool - */ - public function fclose() - { - return fclose($this->handle); - } -} \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/RequestMethod/SocketPost.php b/library/TorrentPier/ReCaptcha/RequestMethod/SocketPost.php deleted file mode 100755 index a09430ac5..000000000 --- a/library/TorrentPier/ReCaptcha/RequestMethod/SocketPost.php +++ /dev/null @@ -1,120 +0,0 @@ -socket = $socket; - } else { - $this->socket = new Socket(); - } - } - - /** - * Submit the POST request with the specified parameters. - * - * @param RequestParameters $params Request parameters - * @return string Body of the reCAPTCHA response - */ - public function submit(RequestParameters $params) - { - $errno = 0; - $errstr = ''; - - if ($this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30) !== false) { - $content = $params->toQueryString(); - - $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n"; - $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n"; - $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; - $request .= "Content-length: " . strlen($content) . "\r\n"; - $request .= "Connection: close\r\n\r\n"; - $request .= $content . "\r\n\r\n"; - - $this->socket->fwrite($request); - $response = ''; - - while (!$this->socket->feof()) { - $response .= $this->socket->fgets(4096); - } - - $this->socket->fclose(); - - if (0 === strpos($response, 'HTTP/1.1 200 OK')) { - $parts = preg_split("#\n\s*\n#Uis", $response); - return $parts[1]; - } - - return self::BAD_RESPONSE; - } - - return self::BAD_REQUEST; - } -} \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/RequestParameters.php b/library/TorrentPier/ReCaptcha/RequestParameters.php deleted file mode 100755 index d3d46f461..000000000 --- a/library/TorrentPier/ReCaptcha/RequestParameters.php +++ /dev/null @@ -1,103 +0,0 @@ -secret = $secret; - $this->response = $response; - $this->remoteIp = $remoteIp; - $this->version = $version; - } - - /** - * Array representation. - * - * @return array Array formatted parameters. - */ - public function toArray() - { - $params = array('secret' => $this->secret, 'response' => $this->response); - - if (!is_null($this->remoteIp)) { - $params['remoteip'] = $this->remoteIp; - } - - if (!is_null($this->version)) { - $params['version'] = $this->version; - } - - return $params; - } - - /** - * Query string representation for HTTP request. - * - * @return string Query string formatted parameters. - */ - public function toQueryString() - { - return http_build_query($this->toArray(), '', '&'); - } -} \ No newline at end of file diff --git a/library/TorrentPier/ReCaptcha/Response.php b/library/TorrentPier/ReCaptcha/Response.php deleted file mode 100755 index c1c77aa4d..000000000 --- a/library/TorrentPier/ReCaptcha/Response.php +++ /dev/null @@ -1,102 +0,0 @@ -success = $success; - $this->errorCodes = $errorCodes; - } - - /** - * Is success? - * - * @return boolean - */ - public function isSuccess() - { - return $this->success; - } - - /** - * Get error codes. - * - * @return array - */ - public function getErrorCodes() - { - return $this->errorCodes; - } -} \ No newline at end of file diff --git a/library/config.php b/library/config.php index dd3c36579..da9efddb6 100644 --- a/library/config.php +++ b/library/config.php @@ -259,7 +259,6 @@ define('CLASS_DIR', BB_PATH .'/library/includes/classes/'); define('CORE_DIR', BB_PATH .'/library/includes/core/' ); define('UCP_DIR', BB_PATH .'/library/includes/ucp/' ); define('LANG_ROOT_DIR', BB_PATH .'/library/language/' ); -define('TP_AUTO_DIR', BB_PATH .'/library/TorrentPier/' ); define('IMAGES_DIR', BB_PATH .'/styles/images/' ); define('TEMPLATES_DIR', BB_PATH .'/styles/templates/' ); diff --git a/library/includes/functions.php b/library/includes/functions.php index 4063aba03..4054979f4 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -2596,8 +2596,6 @@ function bb_captcha ($mode, $callback = '') { global $bb_cfg, $lang, $userdata; - require_once(TP_AUTO_DIR . 'ReCaptcha/ReCaptcha.php'); - $secret = $bb_cfg['captcha']['secret_key']; $public = $bb_cfg['captcha']['public_key']; $cp_theme = $bb_cfg['captcha']['theme'];