All notable changes will be documented in this file. Only changes starting at IconCaptcha 2.0.2 have been recorded.
Release: View tag 4.0.4
- Fixed a compatibility issue with PHP 8.4 caused by a deprecation warning for "implicitly marked nullable parameters", which was breaking the code.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 4.0.3
- Removed the request timestamp check due to unreliability after multiple reports indicated false positives, e.g. when the browser or server clocks were out of sync.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 4.0.2
- Fixed a bug which would throw an exception when validating a challenge while having the Token option configured to be disabled.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 4.0.1
- Fixed an issue regarding the challenge image width, which is received in the payload when processing the icon selection call.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 4.0.0
Version 4 of IconCaptcha introduces significant enhancements to the architecture and feature set, and offers greater flexibility and customization, alongside improved security.
- IconCaptcha is now available on Packagist, allowing installation via Composer.
- Added database support for MySQL, PostgreSQL, SQL Server and SQLite to store challenge and timeout data.
- Added support for ImageMagick to generate challenge images.
- Added support for implementing custom drivers to handle storage, sessions, challenge generation and timeouts.
- Added server-side hooks to execute custom code at specific points during challenge generation and validation steps.
- Added support for Cross-Origin Resource Sharing (CORS).
- Expanded and improved the server-side configuration file with numerous options and descriptions.
- Code related to handling captcha requests has been moved to a dedicated class for easier implementation.
- Changed the way IconCaptcha instances must be initialized while validating challenges, moving away from static function calls.
- Validation of a captcha now returns error codes instead of error messages.
- Challenge images are now returned as base64 strings instead of image links.
- The default widget selector changed to
.iconcaptcha-widget
. - Widgets now use unique UUIDv4 widget and challenge identifiers instead of incremental integers.
- Renamed several client-side widget configuration options.
- Removed the
legacy-light
andlegacy-dark
themes. - Removed support for Internet Explorer now that it has been officially discontinued by Microsoft.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.1.3
- Updated included icons to v3.1.3 of the IconCaptcha widget package, replacing all icons with ones created by BlendIcons.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.1.2
- Added the 'available icons count' as a configurable option, removing the fixed limit of 180 icons.
- Resolved an issue where nested default options were not correctly merging with custom options during initialization.
- All default icons have been converted to use True Color to address a peculiar problem with the GD
imagerotate
function.
- Replaced the use of
dirname(__FILE__)
with the__DIR__
magic constant for specifying the 'icons' path.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.1.1
- Fixed a bug that, under specific conditions, caused challenge generation to fail on PHP 8.1 due to deprecation warnings being echoed.
- Relocated client-side assets to the '/examples' folder for better organization.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.1.0
- Upgraded assets to the IconCaptcha client-side package 3.1.0, adding the functionality to reset widgets as discussed in issue #11.
- Improved CSRF token generation by adding additional fallbacks in case of exceptions being thrown or version incompatibility.
- Made changes to the session class regarding the session key.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.0.1
- Upgraded assets to the IconCaptcha client-side package 3.0.1, which resolved the issues mentioned in issue #7 and issue #9.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 3.0.0
In version 3 of IconCaptcha, the whole plugin got an overhaul - both client-side and server-side.
- Added more captcha image generation options to increase the difficulty of challenges.
- Added automatic challenge invalidation after a period of no user interaction.
- Added automatic timeouts when too many incorrect selections were made by the user.
- Added new light and dark themes with more modern designs.
- Added improved support for custom themes.
- Replaced all icons with 180 new modern icons, created by Streamline.
- Rewrote the widget script to move away from the required use of jQuery. IconCaptcha can still be used with jQuery if you wish to do so.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.5.0
- Updated the method for setting custom localization strings.
- Converted recurring strings into constants.
- Removed the use of the global
$_POST
within the challenge validator.
- Fixed a bug that caused blurriness in the demo pages.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.4.0
- Split the project into separate back-end and front-end repositories.
- Updated the captcha script to interpret success state based on the returned HTTP code rather than a numeric value.
- Relocated front-end assets to a different folder, outside the source and example directories.
- Updated the examples to be compatible with the new front-end package.
For a full list of commits and changes, please refer to the full commit changelog.
- Added the
Content-type: application/json
header in the captcha request file to ensure that the returned data is seen as a JSON string.
- Fixed a bug in the captcha script where wrong error messages were being displayed.
Release: View tag 2.3.0
- Added an option to enable adding nearly invisible image noise to the icon images.
- Added the 'showCredits' option to allow control over whether the credits are displayed in widgets.
- Replaced the PHP
rand()
function withmt_rand()
to improve execution speed. - Updated the icon hash algorithm types to enhance hashing speed.
- Removed the unnecessary MIME-type check, as only PNG icons are used.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.2.0
- Implemented the
CaptchaSession
class to handle all session related data. - Removed direct session calls within the code, replacing them with the
CaptchaSession
class.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.1.3
- Added an example page demonstrating how to use the captcha when the form is submitted via ajax.
- Added the data attribute
captcha-id
to the captcha holder.
- Fixed a bug that caused the form identifier to reset when the incorrect icon was selected.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.1.2
- Added security checks to prevent scripts from trying to request images from the server after the initial call.
- Added a feature that restricts repeatedly clicking the same image until the correct image is selected.
- Replaced error strings with more appropriate HTTP error codes.
For a full list of commits and changes, please refer to the full commit changelog.
- Added a function that allows for setting custom error messages.
- The loading animation has been updated to play until the captcha icons are fully loaded.
- The captcha ID will now be included in all client-side events.
Release: View tag 2.1.0
- Added support for multiple captcha widgets on a single page.
- Added support for setting a different theme per captcha widget.
- Added an optional delay on the hash and icon server requests.
- Added a hash length check for the 'get-image-by-hash' request.
- Updated the width and padding of the icons to improve the way they are displayed.
For a full list of commits and changes, please refer to the full commit changelog.
Release: View tag 2.0.2
- Added a new localization option.
- Reduced the size of the captcha widget and implemented full responsive design.
- Updated the hash and salt algorithms to improve security.
For a full list of commits and changes, please refer to the full commit changelog.