BotDetect CAPTCHA Roadmap & Release Notes
What Are We Up To?Last updated: 2019-07-22
The documentation and packaging overhaul:
Historically, BotDetect was packaged as an installation, or its tech-specific alternatives.
As the number of examples grew, the installation files became heavy, and the entire concept stopped making any sense a long time
ago. But, any change of packaging required a change of documentation -- so it always got delayed -- you know all too well how it goes :(
Then, the introduction of the Simple API made the complete overhaul of both the docs and their production process
unavoidable -- and guess what -- code examples-wise, that cannot be done properly unless the packaging is changed, too :)
To cut a long story short, the changes were long overdue -- and couldn't be delayed any more.
What will get discontinued in the process?
The support for some old frameworks that can't be made to work with package managers, on a case by case basis;
so far, it seems that the PHP/CodeIgniter2.2 will be the only casualty.
What to expect during that time?
Bugfixes, security features, new docs, and many more examples; but little of anything else.
How long is it going to take?
Until we manage to have all the docs generation and maintenance processes scripted and plugged into Jenkins pipelines;
it might be at the end of the Q4, plus or minus a month or two.
How is it progressing?
The current BD ASP.NET release (v4.4.2) is already switched to build-and-run examples and made to be .msi -free
-- this was the single biggest task repackaging-wise.
The BD Java port will be .war -free next (v4.0.Beta3.8), followed by the BD PHP (v4.2.7)
|
..............................................................
.NET CAPTCHA Generator RoadmapLast updated: 2019-07-22
Version:
- Several minor 4.4.x spamfix releases
ETA:
- During the time leading to the 4.5
Status:
|
Features:
In order to give spammers a few years worth of extra homework 'spamfix' features will not be detailed in the roadmap and
release notes -- too few folks other than spammers would benefit from it.
If you are among those few who must know then license the source code -- and indulge in digging as much as it pleases you.
In general, the changes will go in the following directions:
-
Switching to grayscale algos to avoid interfering with your designs, and then retiring 'the named algo' concept entirely.
-
Increasing the number of algos and tweaking them frequently.
-
Making different tech backends render differently. That will turn BD into three different captchas;
each with a slice of the former marketshare; killing financial incentive for breaking any of them.
-
Obscuring the algos visually in order to turn the tracking of an algo existence and its future changes into an exercise in
futility.
Comments:
-
Those changes will make preparation of the training datasets crazy expensive; but the source code will have to be kept
away from spammers. Therefore, there will be licensing, pricing, and order processing changes that will allow for proper user vetting.
|
Version:
|
Features:
-
Integration examples for various workflows in Knockout.js, Meteor, Bootstrap js extensions, Backbone, Ember,
Vue.js and other popular javascript frameworks.
-
Support for AppFabric, Azure Redis Cache, Azure Table, MSSQL Server/'Azure SQL Database', Oracle Database,
Oracle Coherence, Oracle NoSQL Database, MySQL/MariaDB, NCache, Amazon Elasticache, Amazon DynamoDB, etc. as the BotDetect persistence-providers.
-
COM interface exposing Simple API functionalities to applications written in technologies that require use of external
COM component instead of external .NET component.
-
Thin Classic ASP code layer exposing Simple API functionalities to Classic ASP applications.
-
Native support for responsive UI usage scenarios; now it is adaptive only.
-
Ensuring that the .NET Core version of BotDetect 4.5 works properly on Linux and Mac OSX.
Comments:
-
The version 4.5 and subsequent releases will contain the numerous features that we had to cut out of version 4.4 in order to
finally release it, as well as some additional functionalities that we are not ready to announce yet.
-
The priority will be given to those features and integrations that our paying customers will be requesting the most.
|
..............................................................
Release History
This is the version history of the BotDetect ASP.NET Captcha control:
..............................................................
Current Release
Repackaging & bugfix release. Upgrade when it fits you!
Simple API (Experimental):
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET:
- Added the two options,
accessControlAllowOriginHeaderEnabled
and accessControlAllowOriginHeaderValue
, to allow
the control of the 'Access-Control-Allow-Origin'
http header in the captcha endpoint responses
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use SQLite as its session storage
-- but the
System.Data.SQLite
could not be loaded
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Redis as its session storage
-- but the
StackExchange.Redis
client library could not be loaded
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Memcached as its session storage
-- but the
EnyimMemcached
client library could not be loaded
- Fixed a bug which caused captcha stylesheet load failure if frontend and backend were on different hosts. The error was: "Refused to apply
style from ... because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME type checking is enabled."
- Added the Content-Type
'text/html; charset=UTF-8'
to the captcha endpoint response with the captcha html markup
- Temporary switched off the
Same-Domain
rule that required app's frontend and backend hosts to be on the same domain; and whose
violation resulted with the '400 Bad Request' error. It caused too much troubles to those integrating BotDetect for the first time.
It will be reimplemented in one of the subsequent minor releases in a different way that will not stall the integration effort while
one is searching for the root cause of the problem.
The typical root causes of the problem were the use of the frontend.local
& backend.local
instead of the frontend.app.local
& backend.app.local
, or a server or reverse-proxy misconfiguration
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET:
- Fixed a bug that was causing BotDetect to fail to identify the application root folder on some Azure and IIS deployments. This resulted with
the
botdetect.xml
loading failure and the "Value cannot be null"
error.
Traditional API:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET:
- Added
[CaptchaModelStateValidation]
which allows captcha to be validated during Model State validation
- Renamed the
[CaptchaValidation]
ActionFilterAttribute to [CaptchaValidationActionFilter]
.
The old [CaptchaValidation]
name is deprecated -- but it will continue to work in order to preserve backward compatibility
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET:
- Added the new examples:
t_api-captcha-mvccore2-aspnetcore.identity_scaffold
t_api-captcha-mvccore1-aspnetcore.identity
ASP.NET on legacy .NET:
- Reincluded the old
AspNetAjax10CaptchaExample
under the new name t_api-captcha-webforms-api_basics-msajax
-- the example was erroneously removed from the distribution in the v4.4.0
- Reincluded the old
AspNetWebFormsJQueryValidationCaptchaExample
under the new name
t_api-captcha-webforms-api_basics-unobtrusive
-- the example was erroneously removed from the distribution in the v4.4.0
Traditional API & Simple API:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET:
- Fixed a bug, introduced in the v4.3.0, causing the
'The given key was not present in the dictionary'
exception when the captcha validation is executed after the session expiration
ASP.NET Core on .NET Core:
- Changed the location where BotDetect expects to find the
BotDetectSounds
folder when the app is started from Visual Studio.
It is the project root, now -- previously, it was the AppContext.BaseDirectory
ASP.NET Core on legacy .NET:
- Changed the location where BotDetect expects to find the
BotDetectSounds
folder when the app is started from Visual Studio.
It is the project root, now -- previously, it was the AppDomain.CurrentDomain.BaseDirectory
- Fixed a build issue causing the
BotDetect.dll
and BotDetect.Web.Mvc.dll
assemblies not to be signed with a
strong-name key. This resulted with the "Could not load file or assembly 'BotDetect, ..."
error when BotDetect was used by
the strongly-named assemblies
Packaging:
- Deprecated the
.msi
installation packaging and install-to-run examples
- Switched to
.zip
archive packaging and build-to-run examples
- Renamed all examples in order to make example naming more consistent and names more informative
..............................................................
Old Releases
ASP.NET (Core): Traditional API -- spamfix & security release. Upgrade at the first opportunity!
ASP.NET (Core): Simple API -- the first release. Upgrade when it fits you!
ASP.NET (Legacy): Simple API -- simplification & cleanup. Upgrade when it fits you!
Simple API (Experimental):
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET:
- Introduction of botdetect.xml configuration file
- Introduction of Captcha styles consisting of various combinations of image and sound algorithms and other Captcha settings
- Added Captcha style configuration through botdetect.xml file
- Removed dependency on HttpContext.Session as a server side persistence mechanism
- Added support for SQLite persistence-provider
- Added support for Memcached persistence-provider to the Enterprise version
- Added support for Redis persistence-provider to the Enterprise version
- Added persistence provider configuration through botdetect.xml file
- Set SQLite persistence-provider as a default persistence-provider
- Added the new BotDetect AngularJS and Angular 2+ Captcha modules
- Added AngularJS Basic and AngularJS Form examples
- Added Angular 2+ Basic and Angular 2+ Form examples
- Added the new BotDetect jQuery Captcha plugin
- Added the new jQuery Basic and jQuery Form examples
- Added the new BotDetect React Captcha component
- Added the new React Basic and React Form examples
ASP.NET on legacy .NET:
- Removed the option to generate a captcha without specifying a captchaStyle. On such a request the client side will get an error and the
'By the client requested CaptchaStyle name is not defined in the botdetect.xml!' message will be written into your app's log
- Added the
captcha.getUserEnteredCaptchaCode()
function to the client-side API
- Deprecated the
captcha.validateUnsafe()
client-side API function; it will be removed in one of subsequent minor updates
- Deprecated the
baseUrl
botdetect.xml option; it will be removed in one of subsequent minor updates
- Removed the
httpHandlerRequestPath
botdetect.xml option since it became obsolete due to the changes of some functionality
previously dependent on it
- Changed the default
HttpHandler
URL mapping from the /BotDetectCaptcha.ashx
to the
/simple-captcha-endpoint.ashx
Traditional API:
The following applies to:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET
- Fixed a bug affecting the captcha validation that won't be specified here
- Added Captcha Tag Helper to allow for easier Captcha integration into MVC6 views
Traditional API & Simple API:
The following applies to:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET
- Added the
FIPSComplianceEnabled
configuration option. The true
value is ignored in the Free version
[back to the top of the page]
Simple API for the legacy ASP.NET -- the first release. Upgrade when it fits you!
Simple API (Experimental):
ASP.NET on legacy .NET:
- Introduction of botdetect.xml configuration file
- Introduction of Captcha styles consisting of various combinations of image and sound algorithms and other Captcha settings
- Added Captcha style configuration through botdetect.xml file
- Removed dependency on HttpContext.Session as a server side persistence mechanism
- Added support for SQLite persistence-provider
- Added support for Memcached persistence-provider to the Enterprise version
- Added support for Redis persistence-provider to the Enterprise version
- Added persistence provider configuration through botdetect.xml file
- Set SQLite persistence-provider as a default persistence-provider
- Added the new BotDetect AngularJS and Angular 2+ Captcha modules
- Added AngularJS Basic and AngularJS Form examples
- Added Angular 2+ Basic and Angular 2+ Form examples
- Added the new BotDetect jQuery Captcha plugin
- Added the new jQuery Basic and jQuery Form examples
- Added the new BotDetect React Captcha component
- Added the new React Basic and React Form examples
Traditional API:
The following applies to:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET
- Removed
AddInitScript
configuration option since we have merged BotDetect's client side scripts in the previous version
Setup:
ASP.NET Core on .NET Core:
- Fixed a bug in the uninstallation script causing the application pool
BotDetect4AspNetCoreAppPool
not to be removed
from the IIS
ASP.NET Core on legacy .NET:
- Fixed a bug in the uninstallation script causing the application pool
BotDetect4AspNetCoreOnTopAspNet451AppPool
not
to be removed from the IIS
[back to the top of the page]
iOS 12+ audio support and bugfix release. Upgrade when it fits you!
ASP.NET Core on .NET Core:
- Fixed a bug causing BotDetect to look for a sound package in the wrong directory if
locale
option is set to a non-default value. This
resulted with disabled audio functionality
- Fixed a bug causing all requests to BotDetect.ashx Captcha handler to result with an "Internal Error 500" if the culture of a thread in which
BotDetect runs uses language not written in the Latin-1 script
- Fixed a bug causing "Object reference not set to an instance of an object" exception if the client side validation uses
Captcha.AjaxValidate(captchaId, userInput, instanceId)
approach
ASP.NET Core on legacy .NET:
- Fixed a bug causing BotDetect to look for a sound package in the wrong directory if
locale
option is set to a non-default value. This
resulted with disabled audio functionality
- Fixed a bug causing all requests to BotDetect.ashx Captcha handler to result with an "Internal Error 500" if the culture of a thread in which
BotDetect runs uses language not written in the Latin-1 script
- Fixed a bug causing the "InvalidCastException: Specified cast is not valid" exception in case of setting
CodeLength
option value
- Fixed a bug causing
MissingMethodException
exception if application references .NET Core 2.x packages
ASP.NET on legacy .NET:
- Merged .NET version specific builds (.NET 2.0, .NET 3.0, .NET 3.5, .NET 4.5, .NET 4.6+) into the one that is .NET 2.0 based. The same
BotDetect.dll
binary can be used on all legacy .NET frameworks now
- Reorganized example-folders structure into a single folder with examples
The following applies to:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET
- Added support for audio on iOS 12
- Fixed a bug resulting with Captcha image not loading in the Stock browser on Android 4.4
- Fixed a bug resulting with a wrong disabled-sound-icon being rendered if the sound package is not loaded
- Fixed a bug causing
AutoUppercaseInput
, AutoFocusInput
, AutoClearInput
,
AutoReloadExpiredCaptchas
, AutoReloadTimeout
, SoundStartDelay
, RemoteScriptEnabled
Captcha options to be ignored due to failure to write them into persistence provider
- Fixed a bug causing a black rectangle to be displayed instead of a captcha image in IE11 on Win7+SP1 without some of the patches that come with
SP2/3 installations
- Fixed a bug preventing Captcha to be displayed in the IE11's Emulation of the IE9 and IE10 Document modes
- Merged BotDetect's client side scripts into one in order to reduce the number of BotDetect related requests sent to the back-end
- Fixed the bug causing the 'home' and 'left-arrow' keys to misfunction in the captcha code user input field after the 'reload' button is clicked
[back to the top of the page]
iOS 11.3+ audio and bugfix release. Upgrade when it fits you!
- Added support for audio on iOS 11.3+
- Fixed a bug in testModeEnabled option that caused it to fail to turn-off some of the recently introduced spamfix features
Spamfix & Security release. Upgrade at the first opportunity!
ASP.NET Core on .NET Core:
- Separated our single .NET Core 1.x / 2.x build (that was .NET Standard 1.6 based) into:
- .NET Core 1.x build that is .NET Standard 1.6 based, and
- .NET Core 2.x build that is now .NET Standard 2.0 based
- As the result of the previous item:
- .NET Core 2.x build references System.Drawing package, while
- .NET Core 1.x build still references CoreCompat.System.Drawing package since a functional implementation of System.Drawing in .NET Core 1.x
does not exist yet
- Fixed an obfuscation induced bug causing application to crash in the debug mode
- Fixed a bug with HttpContext accessing that caused the "Instance doesn't exist in session" error in scenarios where load-balanced applications
use centralized session storage
- Fixed a bug occasionally causing BotDetect's data to fail deserialization during Captcha validation; and throwing an "Attempted to access an
element as a type incompatible with the array" error
- Fixed a bug causing "InvalidCastException: Unable to cast object of type 'System.Int64' to type 'System.Nullable`1[System.Int32]'" and
"JsonSerializationException: Unable to find a constructor to use for type" errors that were thrown in some usage scenarios after setting
some captcha options to non-default values
ASP.NET Core on legacy .NET:
- Fixed a bug occasionally producing two Captcha image requests, instead of one, what later produced validation failure
ASP.NET on legacy .NET:
- Fixed a bug causing the captcha code textbox to be disabled after a partial postback in some of scenarios where the WebFormsCaptcha control
is used inside of an ASP.NET UpdatePanel instance
The following applies to:
ASP.NET Core on .NET Core | ASP.NET Core on legacy .NET | ASP.NET on legacy .NET
- Several security improvements
- Several spamfix improvements
- Fixed "System.Security.Cryptography.CryptographicException: Specified padding mode is not valid for this algorithm" error that was thrown when
validating Captcha in distributed applications due to use of GetHashCode() implementation that does not guarantee that different machines will
generate the same hash code
- Fixed a bug causing all captcha code inputs, but the first one in a page markup, to be disabled in scenarios with multiple captchas on the same page.
- Improved grayscale Captcha image feature by use of CSS Filter in compatible browsers
- Dropped support for the following browsers:
- Internet Explorer versions before IE 8
- Firefox versions before v52
- Chrome versions before v49
- Safari (MacOSX) versions before v5
- Safari (Windows) all versions
- Opera versions before v36
In other words, those last remaining few still using the Windows XP should update their browsers to the latest version that still works on XP.
If they cannot be bothered to update their browsers -- we cannot be bothered neither -- nor you should be!
[back to the top of the page]
Spamfix release, upgrade at the first opportunity.
- Several security improvements, upgrade at the first opportunity
- Added support for ASP.NET Core 1.x / 2.x applications on top of the .NET Core 1.x / 2.x frameworks.
- Integrated Xamarin Mono based CoreCompat.System.Drawing to BotDetect build on .NET Core since complete System.Drawing implementation in
.NET Core 1.x / 2.x does not exist yet. When (if ever) Microsoft release the functional implementation of System.Drawing in some of the
future versions of the .NET Core you will be able to use it instead of the CodeCompat.System.Drawing by simply changing nuget reference to
System.Drawing in your .NET Core application's Project.json file.
- Added AspNetMvc6NetCore10BasicCaptchaExample.csproj - Visual Studio 2017 MVC6 Example on .NET Core 1.x
- Added AspNetMvc6NetCore20BasicCaptchaExample.csproj - Visual Studio 2017 MVC6 Example on .NET Core 2.x
- Added AspNetMvc6NetCore10BasicCaptchaExample.xproj - Visual Studio 2015 MVC6 Example on .NET Core 1.x
- Fixed a bug causing the Captcha audio to fail to play for the clients running iOS 11+ due to HTTP_X_PLAYBACK_SESSION_ID header being omitted in their
HTML5 audio requests
- Fixed a bug in BotDetect Features Demo example causing random image and sound style not working when 'Random' value is selected for image or sound style
- Fixed a bug causing the Captcha audio to fail to play over SSL/TLS for the clients running Safari on iOS & OSX.
This is not related to the wider issue of iOS clients refusing to play Html5 audio requested via SSL/TLS if the server runs on a self-signed certificate.
- Added encryption of the querystring in remote.captcha.com calls in order to avoid leaking BotDetect version info to spammers
- Captcha Image and Captcha Sound styles settings are ignored in the Free Version
- Added grayscale Captcha image feature to the Paid Version. To make your designer happy grayscale is made default.
'On hoover event' reverts it temporary back to color.
- Improved the Simplified and Traditional Han Captcha character set definitions to reduce chances of character confusion and increase Captcha readability;
'水 (water)' and '木 (wood)' signs are removed from Captcha codes
- Moved all BotDetect's inlined script snippets to existing external script include in order to comply with Content Security Policy (CSP)
[back to the top of the page]
- Added support of ASP.NET Core 1.0 on top of the .NET 4.5.1 or higher .NET framework
- Added support for MVC6 (ASP.NET Core MVC)
- Added new nuget package CAPTCHA.asp.net.core.on.legacy.net.frameworks to nuget.org to be used with ASP.NET Core applications running on top of
.NET 4.5.1 or higher version of the legacy .NET (non-Core) frameworks
- Added MVC6 (ASP.NET Core MVC) basic example
- Added eight new SoundStyles to Enterprise version -- for a total of 20 SoundStyles
- Fixed a bug with Captcha validation failure in WebForm Page_Load event handler
- Several minor security improvements
Nothing really nasty -- but when your time allows upgrade anyway
[back to the top of the page]
- Added Visual Studio 2015 solution with BotDetect integration examples on .NET 4.6 framework
- Added two new integration examples for the Visual Studio 2015 specific project templates:
ASP.NET MVC Single Page Application Example, and
ASP.NET MVC WebSite Razor3 Captcha Example
- Added BotDetect 4 SharePoint 2010 and SharePoint 2013 Captcha Features
- Added BotDetect 4 SharePoint 2007, SharePoint 2010, and SharePoint 2013 Captcha Webpart project examples
- Fixed "Object Reference not set to an instance of an object" error that was thrown when using Captcha on a Content Page or nested Master Page
- Fixed "Cannot validate Captcha with Validate() or AjaxValidate() methods (without parameter)" error that was thrown when using Captcha on a Content Page or nested Master Page
- Fixed "Cannot clear user input text" error during Captcha validation when BotDetect was used on Child pages
- Fixed missing min and max value validation for
ImageSize
option when user configures it through Web.Captcha
object
- Removed Sound Captcha Button from TabIndex when sound functionality (and sound icon respectively) are disabled
- Added an option to turn-on IIS Management Scripts and Tools feature during BotDetect installation in order to ensure that BotDetect examples are installed properly if the feature was turned off initially
- Fixed a bug resulting with the id attributes of BDC_DisabledLink and BDC_SoundIcon elements being set wrongly following the Captcha rendering in a browser
- Added rel="nofollow" to audio Captcha button link
- Test Mode Enabled setting is not available in free versions of BotDetect / restricted to paid versions of BotDetect only
[back to the top of the page]
- Improved BotDetect integration options: ASP.NET WebForms control implementation is no longer the default, but an override of an universal .NET
Web.Captcha
functionality that can also be used directly (e.g. in ASP.NET WebPages, various JavaScript frameworks etc.)
- Improved Captcha control namespace organization and class names: renamed BD3
Web.CaptchaControl
to BD4 Web.Captcha
, BD3 Web.UI.Captcha
to BD4 Web.UI.WebFormsCaptcha
, and BD3 Web.UI.Mvc.MvcCaptcha
to BD4 Web.Mvc.MvcCaptcha
- Added support for multi-voice pronunciation sound packages, improving audio Captcha security against automated analysis
- Added 2 new audio Captcha sound styles (
Collapse
, Seeker
), not available in free versions of BotDetect / restricted to paid versions of BotDetect only
- Certain Captcha image styles (
Bubbles
, Neon
, Neon 2
, Radar
, Ripple
, Ripple 2
, Electric
, Strippy
, Wave
, Ghostly
) are not available in free versions of BotDetect / are restricted to paid versions of BotDetect only
- Added support for ASP.NET WebPages Captcha integration
- Removed Web-unfriendly BMP image format support
- BotDetect configuration API rewritten to be consistent (same settings named the same, using same defaults and valid value boundaries, and work the same across PHP/.NET/ASP technologies) and universal (allow controlling all aspects of Captcha behavior and appearance either through application config files or Captcha object instance properties)
- Flattened configuration section — all BD4 application configuration settings are attributes of the
<botDetect>
configuration element (similar how PHP/ASP settings are all properties of a single configuration root object)
- BotDetect v3 Captcha configuration code examples are reorganized, improved and replaced with the new BotDetect v4 Captcha options code examples: Captcha application config settings code example, Captcha form object settings code example, Captcha request dynamic settings code example, Captcha client-side workflow settings code example
- Replaced client-side
UserInputClientID
setting and server-side UserInputControlID
(envisioned for WebForms use only) with a universal UserInputID
setting which also allows simpler Captcha validation calls
- Merged the BD3 "custom character set" and "banned character sequences" settings into the BD4 "disallowed code substrings" setting
- Fixed a bug with the
SoundStartDelay
setting being ignored on repeated Captcha sound icon clicks (replaying the exact same sound in browsers that support Html5 audio)
- BotDetect client-side instance function
Validate()
has been renamed to StartAjaxValidation()
, and no longer sets the ValidationResult
instance property (Ajax validation result is available through AjaxValidationPassed
or AjaxValidationFailed
callbacks)
- BotDetect client-side function
BotDetect.RegisterCustomHandler()
now executes user-defined code before the default library code (the opposite from old version implementation, allowing greater flexibility of client-side behavior)
- Changed all examples to include user stylesheets after the BotDetect layout stylesheet, so user styles can override library defaults
- Changed page layout of all examples to better adapt to browser window width
- Helplink page moved from captcha.com to captcha.org site; added rel="follow"
- Switched to semantic versioning
[back to the top of the page]
- Added 'X-Robots-Tag: noindex, nofollow, noarchive, nosnippet' to image and audio Captchas
- Fixed "Object reference not set to an instance of an object" error when user with expired session requests audio Captcha
- Added missing files to AspNetWebForms451CaptchaExample project that caused errors when building solution with BotDetect ASP.NET Captcha examples
- Added rel=”nofollow” to configuration links on captcha.com documentation in warning messages
[back to the top of the page]
- Added rel="nofollow" to helplink
[back to the top of the page]
- Fixed a bug in the BotDetect client-side script for Captcha sound playback in IE and other browsers incompatible with Html5 Wav audio, for Captcha sound icon clicks after the first one, when
SoundRegenerationMode
is set to Limited
- Achieved FIPS compliance by replacing all instances of
RjindaelManaged
with AesCryptoServiceProvider
where it is available (.NET versions newer than 2.0) or TripleDESCryptoServiceProvider
(.NET 2.0, where AesCryptoServiceProvider
is not available)
- Improved
Captcha HttpHandler
reliability in various routing scenarios and security against XSS Url manipulation, by using server-relative application paths in all Captcha Urls by default
[back to the top of the page]
- Added Visual Studio 2013 code examples (ASP.NET MVC 5.0 basic Captcha example, ASP.NET MVC 5.0 application template Captcha example, ASP.NET MVC 5.0 jQuery Ajax Captcha example, ASP.NET 4.5.1 WebForms application template Captcha example) to the BotDetect setup package
- Improved Captcha security by using a random Captcha code length by default (4-6 characters instead of 5)
- Fixed a bug with ASP.NET MVC Captcha validation not executing when the Captcha
"LBD_VCID_…"
hidden field is removed by malicious clients
- Fixed a bug with Captcha sound not playing on iOS devices when the Captcha form is loaded over SSL
- Fixed a bug with Captcha sound occasionally not playing on Android 4.1+ devices
- Implemented the sound regeneration mode Captcha configuration setting controlling how will multiple consecutive requests for Captcha audio be handled (defaulting to limited sound regeneration)
- Improved server resource conservation by replaying the generated Captcha sound on the client without requesting a new sound from the server, in Html5 Wav audio compatible browsers that support it
- Improved Captcha controls usability by disabling and enabling Captcha controls (sound and reload icons) simultaneously instead of individually
- Added support for
"nb"
and "nob"
Norwegian language codes in Captcha locales
- Added support for Indonesian Captcha localization (
"id-Latn-ID"
)
- Improved Captcha readability by removing the
"VV"
sequence from Latin Captcha codes (easily confused with "W"
in Captcha images)
- Minor improvements in readability, security and scalability of some
ImageStyles
(BlackOverlap
, Bullets
, Bullets2
, CaughtInTheNet
, CaughtInTheNet2
, Collage
, Corrosion
, Graffiti2
, Halo
, Lego
, Radar
, Snow
, Stitch
, Strippy
, Sunrays
, Sunrays2
, ThickThinLines
, ThickThinLines2
)
- Added a JavaScript workaround for Back button issues with browsers re-displaying an expired Captcha image despite its
"no-cache, no-store"
Http response headers
- All BotDetect configuration values for paths now allow both
"~/"
and "~\"
for application root (previously, only "~/"
was allowed)
- Fixed a minor syntax error in the BotDetect layout stylesheet (changed
"filter: alpha(opacity:90)"
to "filter: alpha(opacity=90)"
)
- Changed the ASP.NET MVC jQuery Ajax Captcha example to use
CaptchaControl.AjaxValidate()
instead of MvcCaptcha.Validate()
, to allow multiple Ajax validations of correct user inputs
- Changed the jQuery Validation Captcha code example: fixed a bug with jQuery validation script sequence in IE 6, updated the link to the jQuery validate plugin homepage
- Fixed the description of the Captcha sound start delay configuration property in the Captcha customization code example (the Captcha code textbox label is pronounced, not the Captcha sound icon label)
- Changed the Captcha customization example to log custom BotDetect client-side events on the form instead of displaying message boxes
- Improved the BotDetect setup package: after installing Captcha examples and deploying them to
localhost
the setup will automatically launch the examples page for the latest version of .NET available, if a non-server OS is detected
[back to the top of the page]
- Fixed a bug in RTL alphanumeric Captcha code drawing: runs of latin digits are now properly drawn LTR as per the Unicode bidirectional algorithm
- Improved the default Captcha character set definitions to reduce chances of character confusion and increase Captcha readability: removed
'1'
from alphanumeric Hebrew Captcha codes, 'و'
and 'ه'
from Arabic Captcha codes, '3'
from alphanumeric Devanagari Captcha codes, 'ᅦ'
from Hangul Captcha codes, and 'う'
, 'く'
, 'ら'
and 'り'
from Hiragana Captcha codes
- Minor improvements in readability, security and scalability of some
ImageStyles
(Chalkboard
, Chess
, Circles
, Collage
, Lego
, Neon
, Ripple2
)
- Improved Captcha audio usability in browsers supporting Html5 Wav audio by keeping the sound icon disabled until Captcha playback ends
- Improved the BotDetect layout stylesheet to avoid slight Captcha image and icon movement when they are selected using the keyboard
- Optimized ASP.NET Cache use by only keeping BotDetect values cached for the same duration as the configured ASP.NET Session timeout
- Simplified Start Menu folder names for installed ASP.NET Captcha code examples
- Added remote script functionality intended for statistics collection and proof-of-work confirmation (work in progress)
- Allowed Captcha help link text configuration for free version users
[back to the top of the page]
- Fixed a bug with Captcha sound not playing on Android 4.0+ devices
- Fixed a bug with Captcha sound not playing on iOS 6.0+ devices
- Fixed a bug with the
CaptchaValidator
always failing Captcha validation when placed in a FormView
or similar contexts where the validation event bubbles up to a container and is handled multiple times
- Fixed a bug with the Captcha client-side initialization not triggering in the jQuery
ready()
handler when jQuery.noConflict()
is used
- Improved usability of automatic expired Captcha reloading: the reload icon will now be disabled after the automatic reload time-outs, to prevent Captcha generation with an expired Session
- Improved configurability of the Captcha tabindex setting:
-1
is now a special value that will disable tabbing over Captcha elements in most browsers
- Improved convenience of installed BotDetect code examples: added Visual Studio solutions containing all Captcha code examples for each ASP.NET version to the BotDetect installation folder and Start Menu shortcuts
- Improved installation reliability of BotDetect demos & examples in cases when IIS version detection fails
[back to the top of the page]
- Added a configurable starting delay to JavaScript Captcha sound playback to increase accessibility in JAWS and similar screen readers (which might pronounce the sound icon label when it's selected and start playing Captcha audio simultaneously, making it hard to understand)
- Simplified ASP.NET MVC Captcha integration by automatically saving Captcha settings before markup generation (user code doesn't have to include the
SaveSettings()
call anymore)
- Added a new code example to the BotDetect setup package (ASP.NET MVC 4.0 Basic Captcha Example)
- Implemented the option to easily disable certain Captcha image or sound styles purely through Captcha configuration
- Added the
LBD_ProgressIndicator
CSS class to the Captcha reload progress indicator for easier styling
- Optimized audio tone noise generation by only calculating one full sine period and reusing the result
[back to the top of the page]
- Added support for Captcha protection using ASP.NET 4.5, Visual Studio 2012 and ASP.NET MVC 4.0, and implemented new related code examples (ASP.NET 4.5 WebForms Application Template Captcha Example, ASP.NET MVC 4.0 Internet Application Captcha Example, ASP.NET MVC 4.0 jQuery Ajax Captcha Example)
- Fixed a bug with Captcha sound being unable to access sound package files (both the default file embedded in the assembly and the separately deployed
.bdsp
files used for non-default locales) when loading the BotDetect assembly from an UNC path
- Fixed a bug in the BotDetect layout CSS causing the Reload icon to not be hidden for clients with JavaScript disabled
- Changed JavaScript user input case adjustment to auto-uppercase input instead of auto-lowercasing it, since all current Captcha image styles use uppercase characters; updated all related configuration settings
- Fixed a bug with automatic user input case adjustment resulting in incorrect caret positioning for iPad users
- Fixed a bug with automatic expired Captcha image reloading executing multiple times after multiple manual Reload icon clicks (only a single JavaScript timeout is set at a time now)
- Fixed a bug with Captcha request filtering erroneously kicking in when making repeated jQuery validation requests
- Fixed a bug with installed BotDetect ASP.NET MVC example projects referencing wrong assembly paths when opened in Visual Studio
- Improved compatibility with ASP.NET MVC applications using cookieless Session state, removing the need to use the BotDetect
CustomSessionIDManager
to support that use case
- Removed the
CustomSessionIDManager
related Url params (used to work around Captcha sound issues in some browsers) from Captcha image and validation Urls, where they were added unnecessarily
- Disabled BotDetect
SessionTroubleshooting
warnings about the CustomSessionIDManager
- Decreased height of the license-restricted link below Captcha images generated by the Free version of BotDetect from 15px to 10px; fixed link appearance (color scheme and font selection) to make it readable at the new size
- Improved configurability of the Captcha help link (instead of completely removing it from paid versions of BotDetect), allowing choice between adding it to the Captcha image (
mode="image"
) or below it (mode="text"
); Free version users can also use these settings, but can not turn the link off completely like paid users can
[back to the top of the page]
- Fixed a bug with Captcha localization not recognizing the ISO-639-1 language code
ja
(Japanese)
- Fixed a bug with the BotDetect client-side script throwing
reloadLink is null
errors when Captcha reloading is disabled
- Fixed a bug with the BotDetect client-side initialization not working when the Captcha is shown inside a jQuery dialog
- Improved compatibility of the built-in BotDetect client-side validation with jQuery validation (changed the
?get=validationResult
endpoint response format, changed the response MIME type to application/json
)
- Improved ease of accessing the BotDetect client-side object in user scripts by referencing it through the custom
Captcha
property of the DOM element registered as the Captcha code user input field (through the UserInputClientID
server-side object property)
- Minor client-side tweaks: added the
InstanceId
client-side object property for easier custom validation; replaced the InputElement
client-side object property with the GetInputElement()
function call to avoid circular references (and the possible memory leaks)
- Added a new code example showing how to integrate BotDetect Captcha validation with jQuery client-side validation (Asp.Net jQuery Validation Captcha Example)
- Added the
CaptchaImageTooltip
, ReloadIconTooltip
and SoundIconTooltip
properties to Captcha
control instances, allowing runtime customization of tooltip strings for localization purposes
- Improved compatibility with ASP.NET MVC Areas and custom routes by automatically using absolute Urls for Captcha requests in ASP.NET MVC apps
- Minor improvements in readability, security and scalability of some
ImageStyles
(Bullets
, Chipped
, Electric
, Radar
, Ripple
, SunAndWarmAir
)
- Added a short cooldown to sound icon clicks, reducing the chance of accidental multiple concurrent Captcha sound playbacks
- Improved Captcha icon display to help communicate that the reload icon is disabled while the Captcha image is reloading and that the sound icon is disabled while the Captcha sound cooldown is active
- Merged all CSS declarations into a single stylesheet for easier inclusion in ASP.NET MVC apps and other scenarios in which the BotDetect stylesheet can't be included automatically
- Disabled
HttpHandlerTroubleshooting
by default
- Fixed a bug with UAC not displaying the full program name before installation
- Removed the help link from Captcha images to prevent accidental clicks and navigation issues for mobile visitors
- Added a license-restricted link to the bottom 15px of every Captcha image generated by the Free version of BotDetect
[back to the top of the page]
- Fixed a bug with the
CustomSessionIdManager
throwing FormatException
s when the Captcha request querystring is malformed by faulty clients
- Fixed a bug with Captcha image reloading occasionally throwing JavaScript errors in IE 8 when mousing over the Captcha image while it's reloading
- Improved Captcha image security: if no image style is set, randomize the image style for each generated Captcha image (instead of using
Chalkboard
by default)
- Improved Captcha image readability: tweaked most image styles to produce easier to read Captcha images
- Added a BotDetect trademark to Captcha images generated by the Free version of the component
- Improved Captcha sound security: if no sound style is set, randomize the sound style for each generated Captcha sound (instead of using
Dispatch
by default)
[back to the top of the page]
- Fixed a bug with CaptchaId generation causing JavaScript errors when
Page.AppRelativeVirtualPath
starts with a number
- Improved
CustomSessionIdManager
performance under heavy load
- Added a workaround for the GbPlugin known issue causing Captcha validation issues for Brazilian visitors
- Improved Captcha image generation: slightly reduced
PaintMess
and Radar
contrast
[back to the top of the page]
- Fixed a bug with security exceptions occurring when trying to play Captcha sounds from
Bin
folder deployed sound packages in Medium Trust (ASP.NET 4.0 only)
- Fixed a bug with the Captcha control
CssClass
property value not being added to the generated Captcha markup
- Improved BotDetect
SessionTroubleshooting
and HttpHandlerTroubleshooting
: replaced Application State persistence with static fields, added several fall-back mechanisms to make troubleshooting more reliable
- Improved BotDetect Captcha markup generation: the BotDetect stylesheet include is now placed before the first
<link>
or <style>
element in the page <head>
, instead of at the top (where it was interfering with elements that need to be placed first, such as the X-UA-Compatible
meta tag)
- Improved BotDetect Captcha markup generation: the
&s
parameter is not added to Captcha image and sound Urls when the BotDetect CustomSessionIdManager
is not used
- Improved BotDetect Captcha persistence: reduced the size of Session State used for Captcha data in certain scenarios (non-default Captcha locale,
StateServer
or SQLServer
Session State modes)
- Improved the Captcha Code Filtering Example: updated the example project explanation and simplified all three banned sequence declaration sources to contain the same banned sequences
[back to the top of the page]
- Added support for Captcha protection of ASP.NET MVC 3.0 Razor Views
- Improved general ASP.NET MVC compatibility, simplifying the ASP.NET MVC Captcha integration procedure
- Improved installed ASP.NET MVC Captcha code examples: ASP.NET MVC 3.0 & 2.0 examples running on .NET 4.0 and ASP.NET MVC 2.0 & 1.0 examples running on .NET 3.5
- Fixed a bug with embedded resource access exceptions when server time is set before the assembly modification date
- Fixed a bug with Captcha image size and certain other settings not affecting ASP.NET Web Form markup properly when assigned in
InitializedCaptchaControl
handlers: moved the InitializedCaptchaControl
custom event handler execution to the Page_PreRender
phase of the ASP.NET Web Forms lifecycle, so custom handlers registered in earlier phases are always fired as expected
- Added support for Captcha tabindex setting through the
TabIndex
control property
- Fixed some minor inconsistencies between the ASP.NET 4.0 and ASP.NET 2.0 Captcha control implementations
- Improved the BotDetect setup package, so minor updates automatically remove older versions (and don't require manually uninstalling the older version)
[back to the top of the page]
- Fixed a bug with incorrect sound package permissions when using BotDetect from the GAC in ASP.NET applications running in Medium and Minimal Trust
- Fixed a bug with the
CaptchaRequestValidator
consuming HttpCache
persistence even when it's turned off
- Fixed a bug in the Polish locale-specific character set and pronunciation sound package: replaced
'V'
with 'W'
- Added the
OnHelpLinkClick
custom BotDetect client-side event
- Added the
<captchaHttpHandlerTroubleshooting>
BotDetect configuration element allowing BotDetect HttpHandler
troubleshooting to be turned off
- Updated all default character set definitions to reduce chance of character confusion: removed
'7'
easily confused with '1'
from all CodeStyle.Alpha
and CodeStyle.Alphanumeric
Captcha codes
[back to the top of the page]
- Fixed a bug with the Lego Captcha image style placing the most noise over the last character
- Improved Captcha sound reliability by falling back to an assembly-embedded sound package for the default
"en-US"
locale if it's not present in the configured sound packages folder
- Improved BotDetect sound package folder configuration, now accepting BotDetect assembly-relative folder paths (starting with
"\"
, e.g. "\BotDetectSounds"
), ASP.NET application-relative folder paths (starting with "~/"
, e.g. "~/BotDetectSounds"
) and network shares (starting with "\\"
e.g. "\\SERVER\BotDetectSounds"
)
- Improved BotDetect Url configuration, now also accepting application-relative paths (starting with
"~/"
, e.g. "~/BotDetectCaptcha.ashx"
will make BotDetect use server-relative application root paths in generated markup)
[back to the top of the page]
- Fixed a bug with Captcha persistence using
StateServer
and SQLServer
Session state modes being unable to persist custom Captcha locales or colors
- Fixed a bug with Captcha drawing code sometimes not placing random noise properly
- Improved Captcha image security, scaling, performance and readability (tweaked all 50 existing Captcha image styles)
- Added 10 new Captcha image styles:
Bubbles
, Electric
, MeltingHeat2
, Neon
, Neon2
, Radar
, Ripple
, Ripple2
, SpiderWeb2
, Split2
- Updated font declarations for East Asian locales, using bold fonts by default to make Captcha images easier to read
- Updated the default Han Simplified and Han Traditional character set definitions: removed the
纟
(0x7E9F, "silk") character from Captcha codes, since it isn't pronounceable
- The Captcha Reload button is now placed above the Captcha sound button, and only displayed if JavaScript is enabled (since it's JavaScript-dependent)
- The BotDetect client-side initialization script is now executed before
window.load
if possible (when the page DOM is ready)
- Added client ids to all relevant Captcha Html elements for easier custom scripting and styling, and changed Css class names and declarations a bit to keep them consistent
- Updated the Captcha layout code to allow greater flexibility through new Captcha object properties (
UseHorizontalIcons
, UseSmallIcons
, and CaptchaIconsDivWidth
) and BotDetect configuration elements (added the iconWidth
attribute to custom <reloadIcon>
and <soundIcon>
declarations)
- updated the
IgnoreRoute
statements in ASP.NET MVC code examples to ignore all BotDetect requests regardless of Area, Controller or View paths preceding them
[back to the top of the page]
- Fixed a bug with the Captcha code generation occasionally using less than the full available character set for random code generation
- Fixed a bug in the BotDetect Sound Package processing code, which was incorrectly naming
.bdsp
files for locales with only the macrolanguage set
- Improved sound Captcha clarity when using various newly available localized pronunciations: tweaked the
Radio
, Robot
and Synth
sound generation algorithms
- Updated the default Cyrillic character set definition to reduce chance of character confusion: removed
'З'
(Ze) and '3'
(three) from alphanumeric Captcha codes
[back to the top of the page]
- Fixed a bug in the BotDetect client-side script include: the
BotDetect.Init()
function is now only called when the Captcha image is actually rendered on the page
- Fixed a bug in BotDetect audio processing code involving
Math.Abs(-32768)
edge case exceptions
- Updated BotDetect pronunciation sound packages for Canadian French and Mexican Spanish
- Updated default Latin character set definitions to reduce chance of character confusion with the 3.0 drawing changes (removed
'F'
sometimes confused with 'E'
, 'G'
confused with 'C'
, 'Q'
confused with 'O'
, 'Z'
confused with '2'
and '7'
confused with '1'
)
- Updated locale-specific default character set variants: removed
'W'
and 'Z'
for the Vietnamese locale
- Added a link to the BotDetect localization downloads page in the BotDetect Start Menu folder
[back to the top of the page]
- Added multi-language Captcha code generation & validation, supporting various Unicode character sets and RTL languages (charsets: Latin, Cyrillic, Greek, Hebrew, Arabic, Devanagari, Han Simplified, Han Traditional, Hangul, Bopomofo, Hiragana and Katakana)
- Added Captcha code character set customization options, using a user-defined character set for random Captcha code generation
- Added Captcha code filtering, allowing randomly generated Captcha codes to be checked against a user-defined list of banned character sequences
- Added Captcha code timeouts, so the Captcha can only be successfully solved within the specified time period after generation
- Added test mode support for automated testing scenarios, exposing a configuration switch that causes 100% of Captcha codes generated to be "TEST"
- Improved Captcha image security against bots (added more segmentation challenges and randomness to all 50 BotDetect Captcha image styles)
- Improved Captcha image readability for humans (the text is larger, visual appearance is improved, there are less distortion challenges in all image styles)
- Added Captcha image color scheme customization options, where two user-defined colors can be used to adjust the Captcha color scheme to suit any website design
- Improved Captcha sound security, using 10 different sound styles with various effects, noises and randomizations (sound styles: Dispatch, HiveMind, Industrial, Pulse, Radio, RedAlert, Robot, Scratched, Synth, Workshop)
- Added multi-language Captcha sound generation, using individual language sound packages downloadable separately from the main control
- Improved Captcha sound compatibility, automatically using the HTML5
<audio>
element in supporting browsers
- Added a new sound format option (
WavPcm8bit8kHzMono
), resulting in smaller sound file downloads but reducing sound quality
- HTML improvements: added customizable Captcha image, sound and reload titles, icons and urls; added automatic Captcha icon scaling to match the Captcha image height; improved client script and stylesheet include robustness
- Client-side improvements: added customizable automatic user input lowercasing, textbox focusing on reload and sound Captcha icon clicks, automatic image reloading on Captcha code timeouts, and built-it Ajax validation support
- Configuration improvement: added a custom
<botDetect>
configuration section, allowing detailed BotDetect customization using web.config
settings
- Persistence improvements: added a Session issue troubleshooting helper
- Troubleshooting improvements: added optional detailed debug/trace logging and easy logging provider customization
- Added new example projects (ASP.NET Membership integration, Captcha code filtering option, Captcha customization options) and demonstration forms (BotDetect image styles demo) demonstrating new v3.0 functionality
- Improved all web application descriptions, navigation and IIS compatibility
- Improved setup experience, with only one setup package for all .NET versions
- Added binary package downloads for machines where running the setup package is not feasible
- Added ASP.NET 4.0 & Visual Studio 2010 compatibility
- Added ASP.NET MVC 2.0 compatibility
[back to the top of the page]
v2.0.15 Released 2009-11-23
- Fixed a bug with the CAPTCHA image failing to render on some servers even when the CaptchaHandler is properly registered
- Fixed a bug with the Captcha control breaking on shared servers (running in Medium Trust)
- Fixed a bug with the CAPTCHA event registration occasionally throwing "key already exists" exceptions during concurrent page access (implemented proper global event locking)
- Fixed a bug with the CAPTCHA Troubleshooting code examples not working properly on IIS 7.5 / Windows Server 2008 R2 and Windows 7 (the InstallSamples.bat script now also grants log file write access to the appropriate ApplicationPoolIdentity user)
- Added a X-Robots-Tag Http header to CAPTCHA image and sound Http responses that prevents search engine indexing of CAPTCHA images and sounds
- Improved handling of invalid CAPTCHA Http requests (basic problem identification)
[back to the top of the page]
v2.0.14 Released 2009-09-14
- Fixed a bug with CAPTCHA validation failing inside UpdatePanel variants in Telerik and other non-Microsoft Ajax frameworks
- Fixed a bug with CAPTCHA client-side scripts not working when the Captcha control is not visible on the first page load, but gets added after a partial postback
- Fixed a bug causing key conflicts with applications or other components using Rick Strahl's ClientScriptProxy
- Fixed a bug allowing direct access to sound CAPTCHAs even if the Captcha.SoundEnabled property is set to false
- Fixed a bug with the BotDetect layout stylesheet not overriding other, possibly conflicting CSS declarations included on the page
- Improved validation of CAPTCHA image and sound request querystring parameters, rejecting a wider variety of automated requests sent by some bots
- Improved the BotDetect Troubleshooting utility and example projects, allowing users to also log all CAPTCHA validation attempts
- Improved usability of the progress indicator for CAPTCHA image reloading, using a locale-independent animation
- Improved flexibility of CAPTCHA image reloading by adding custom PreReloadCaptchaImage and PostReloadCaptchaImage client-side events that can be handled by user code
- Improved usability of all BotDetect example projects by automatically clearing the CAPTCHA code user input after clicking the Reload CAPTCHA button
- Improved the ASP.NET MVC CAPTCHA example projects, using a custom ActionFilterAttribute for CAPTCHA validation
- Separated ASP.NET Ajax example projects for .NET Framework versions 2.0 and 3.5
- Marked the Lanap.BotDetect.dll assembly as CLS-Compliant
[back to the top of the page]
v2.0.13 Released 2009-02-02
- Added ASP.NET MVC RC1 support and ASP.NET MVC RC1 CAPTCHA code examples (C# BotDetect ASP.NET MVC Demo and VB.NET BotDetect ASP.NET MVC Demo)
- Fixed a bug with the PreDrawCaptchaImage handler being re-registered and executed multiple times (the number cumulatively increasing for every page load)
- Fixed a bug with multiple randomized CAPTCHA controls in the application all using the last registered PreDrawCaptchaImage handler instead of the appropriate one
- Fixed a bug with the CAPTCHA CodeLength and CodeType not being randomized on the first page load
- Fixed a bug with the CAPTCHA validation failing when there is an ASP.NET Ajax UpdatePanel on the page, but the Captcha control is not within it
- Fixed a bug with the CAPTCHA sound and reload buttons not being focusable using the keyboard
- Fixed a bug with the audio CAPTCHA not playing in IE when using SSL offloading (added client-side SSL detection)
- Fixed a bug with the CustomSessionIDManager exposing the ASP.NET SessionID in plaintext
- Fixed a bug with multiple CAPTCHA control instances on the same page and CAPTCHA CSS declarations (changed all BotDetect CSS declarations to use CSS classes instead of ids)
- Fixed a bug with the CAPTCHA Troubleshooting code examples not registering the ErrorTrackingModule when using IIS 7.0 Integrated Mode
- Added a missing </div> to the ASP.NET Ajax CAPTCHA code examples
[back to the top of the page]
v2.0.12 Released 2008-07-03
- Fixed a bug with the audio CAPTCHA not playing in IE when using SSL
- Fixed a bug with the audio CAPTCHA not playing in Opera 9.5
- Fixed a bug with the CAPTCHA image not displaying when the IIS virtual folder name contains spaces
- Fixed a bug with the CAPTCHA validation always returning false for all validation attempts after the first one when placed inside a Telerik RadAjaxPanel
- Fixed a bug with the example projects not displaying the CAPTCHA image when using IIS 7.0 Integrated Mode
[back to the top of the page]
v2.0.11 Released 2008-05-29
- Fixed a bug with the CAPTCHA randomization being bypassed when clicking the Reload CAPTCHA button, or for other direct CAPTCHA image requests
- Fixed a bug with the sequential Reload CAPTCHA button clicks appending new values to the querystring instead of replacing the existing one
- Fixed a bug with the CAPTCHA stylesheet not resetting link styles for the Reload and Sound CAPTCHA buttons, causing layout problems if the page link style includes padding etc.
- Fixed a bug with the CAPTCHA validation always failing if the .aspx form path includes spaces or other Url-encoded characters
- Fixed a client-side script include bug occurring when a Captcha control is placed inside a MultiView control which is inside an ASP.NET Ajax UpdatePanel
- Added support for CAPTCHA image and sound request full path customization (instead of just the extension) via web.config settings
- Improved handling of invalid CAPTCHA requests sent by some bots (repeated CAPTCHA image or sound requests with expired parameters)
[back to the top of the page]
v2.0.10 Released 2008-04-06
- Added "Reload CAPTCHA" button support (allowing users to request a new CAPTCHA code if the current one is unreadable), and the related ReloadEnabled property
- Added ASP.NET Ajax built-in compatibility, allowing the "out of the box" Captcha control to validate inside an UpdatePanel
- Added built-in SharePoint support (previous versions required source code modifications)
- Added support for CAPTCHA image and sound request extension customization via web.config settings
- Added a static variant of the Validate() method, allowing easier integration with various Ajax and MVC frameworks
- Rewrote the Captcha control rendering code to produce smaller, semantic, XHTML 1.1 Strict compliant markup
- Added 3 new Captcha control properties: SoundIconAltText, ReloadIconAltText and CaptchaImageAltText, allowing HTML output string customization
- Improved handling of invalid CAPTCHA requests sent by some bots (with &amp;amp;-style constructs in the querystring)
- Fixed a bug with the example projects not performing CAPTCHA validation in IE 6.0 & 7.0 when typing in the CAPTCHA code and pressing Enter
- Improved the usability of all examples by automatically lowercasing the CAPTCHA code input while typing
- Added a "Simulate Error" button and related instructions to the Troubleshooting example CAPTCHA projects
- Packaged the updated version of the web.config file with the MS Ajax examples, allowing .NET 3.5 machines to use them without running the Visual Studio 2008 Conversion Wizard
[back to the top of the page]
v2.0.9 Released 2008-02-06
- Minor ASP.NET 2.0 Ajax CAPTCHA examples code cleanup
- Some cosmetic changes in existing CAPTCHA text styles
[back to the top of the page]
v2.0.8 Released 2007-10-21
- Fixed a bug with the CAPTCHA code timeout being set to 20 min even if the Session timeout is longer
- Fixed a bug with multiple CAPTCHAs on the same page and only being able to validate the first one
- Fixed a bug causing exceptions to be thrown while processing invalid CAPTCHA image/sound requests used by some bots
- Fixed the CAPTCHA control's XHTML output to be WCAG AAA compliant
[back to the top of the page]
v2.0.7 Released 2007-07-18
- Fixed a bug with the audio CAPTCHA in IE 7.0 / Vista / Media Player 11 (.NET 2.0 version only)
- Fixed a bug with the audio CAPTCHA in older versions of IE when using SSL
- Fixed the CAPTCHA image and sound links to be XHTML compliant
[back to the top of the page]
v2.0.6 Released 2007-07-02
- Fixed a bug causing errors when using the “Sql” and “StateServer” Session State modes (marked the CaptchaCode class as Serializable)
- Improved control extensibility (changed useful Captcha class fields and methods from private to protected)
- Improved all examples to also work with disabled cookies (.NET 2.0 version only)
- Added basic MS ASP.NET 2.0 Ajax Extensions examples (C# and VB.NET) to the installation (.NET 2.0 version only)
- Added the “log4net.dll” assembly to the “Troubleshooting” installation folder, which was omitted by error in the previous release (.NET 1.1 version only)
[back to the top of the page]
v2.0.5 Released 2007-03-20
- Fixed a bug with the component sometimes throwing exceptions on the Visual Studio design surface
[back to the top of the page]
v2.0.4 Released 2007-03-13
- Fixed a bug with the sound link both playing the sound in the background and opening the download dialog in Firefox (.NET 1.1 version only)
[back to the top of the page]
v2.0.3 Released 2007-03-02
- Fixed a bug preventing detailed error logging (accidentally deleting inner exception data)
- Added a centralized, non-intrusive, BotDetect-only, highly customizable error logging utility
- Fixed a bug with "object reference not set…" errors for BotDetect properties in the Visual Studio designer
- Fixed a bug displaying the same image and/or breaking validation when using multiple CAPTCHAs per page
- Fixed a bug breaking validation with the same page (containing CAPTCHA) opened in multiple browser tabs
- Fixed a bug allowing the same code to be used to draw multiple images if both validation and page reloading were skipped
- Fixed a bug displaying the same CAPTCHA (but breaking validation) when using the Back button in IE
- Fixed a bug with the sound CAPTCHA not working without Javascript
- Fixed a bug with the sound CAPTCHA not working in Safari
- Fixed a bug with the CAPTCHA image not changing after first load in Opera
- Fixed a bug in the uninstallation script occurring on machines without IIS
- Fixed a bug in the installation script for ASP.NET not setting the correct runtime version when multiple .NET framework versions are installed
- Added a new example demonstrating CAPTCHA randomization
- Added a new example demonstrating CAPTCHA troubleshooting
- Updated and expanded the Help
[back to the top of the page]
v2.0.2 Released 2006-06-25
- Updated licensing information packaged in the setup
[back to the top of the page]
- Added sound CAPTCHA support
- Added 10 new CAPTCHA text styles (for a total of 50 different CAPTCHA algorithms)
- Improved memory management
- Added shared server support
- Fixed a CAPTCHA vulnerability allowing the user to bypass the CAPTCHA entirely by replaying a previous ViewState parameter value
- Stopped using client side (ViewState) persistence altogether
- Added a VB.NET example demonstrating dynamic setting of all CAPTCHA properties
- Fixed a bug preventing ASP.NET 1.1. and ASP.NET 2.0 versions from coexisting on the same machine
[back to the top of the page]
v1.5.3 Released 2005-08-13
- Added support for ASP.NET 2.0 (.NET framework 2.0)
- Added 21 new CAPTCHA text styles (for a total of 40 different CAPTCHA algorithms)
- Some cosmetic changes in existing CAPTCHA text styles
[back to the top of the page]
v1.5.2 Released 2005-05-18
- Added 12 new CAPTCHA text styles (for a total of 19 different CAPTCHA algorithms)
- Some cosmetic changes in existing CAPTCHA text styles
[back to the top of the page]
v1.5.1 Released 2005-04-12
- Removed a *.tmp file that was packaged with the setup by mistake
[back to the top of the page]
v1.5.0 Released 2004-12-28
- Implemented CAPTCHA image generation with a HttpHandler
- Added support for multiple CAPTCHA text styles (the TextStyle property)
- Added 6 new CAPTCHA text styles (for a total of 7 different CAPTCHA algorithms)
- Added a new C# example demonstrating dynamic setting of all CAPTCHA properties
[back to the top of the page]
v1.0.3 Released 2004-12-11
- Some cosmetic changes in the CAPTCHA image drawing algorithm
[back to the top of the page]
v1.0.2 Released 2004-12-01
- Some cosmetic changes in the CAPTCHA image drawing algorithm
[back to the top of the page]
v1.0.1 Released 2004-11-27
[back to the top of the page]
Java CAPTCHA Generator RoadmapLast updated: 2019-07-22
Version:
- Several minor 4.0.Beta3.x spamfix releases
ETA:
- During the time leading to the Beta4
Status:
|
Features:
In order to give spammers a few years worth of extra homework 'spamfix' features will not be detailed in the roadmap and
release notes -- too few folks other than spammers would benefit from it.
If you are among those few who must know then license the source code -- and indulge in digging as much as it pleases you.
In general, the changes will go in the following directions:
-
Switching to grayscale algos to avoid interfering with your designs, and then retiring 'the named algo' concept entirely.
-
Increasing the number of algos and tweaking them frequently.
-
Making different tech backends render differently. That will turn BD into three different captchas;
each with a slice of the former marketshare; killing financial incentive for breaking any of them.
-
Obscuring the algos visually in order to turn the tracking of an algo existence and its future changes into an exercise in
futility.
Comments:
-
Those changes will make preparation of the training datasets crazy expensive; but the source code will have to be kept
away from spammers. Therefore, there will be licensing, pricing, and order processing changes that will allow for proper user vetting.
|
Version:
|
Features:
-
Integration examples for various workflows in Meteor, Bootstrap js extensions, Backbone, Ember, Vue.js and other
popular javascript frameworks.
-
Support for Amazon DynamoDB, Amazon Elasticache, Azure Redis Cache, SQLite, MySQL/MariaDb, Oracle Coherence,
Oracle NoSQL Database, Oracle Database, MSSQL Server, NCache, Ehcache, Hazelcast, Infinispan, GridGain, Apache Ignite, JCache API,
etc. as the BotDetect persistence-providers.
-
Native support for responsive UI usage scenarios; now it is adaptive only.
-
Adding a Maven, Gradle, and Ant+Ivy builds to source code package for those who would like to build BotDetect from the
source code; now it is Ant-only.
-
Additional functionalities that we are not ready to announce yet.
Comments:
|
..............................................................
Release History
This is the version history of the BotDetect Java Captcha library:
..............................................................
Current Release
Bugfix release. Upgrade when it fits you!
Simple API (Experimental):
- Added the two options,
accessControlAllowOriginHeaderEnabled
and accessControlAllowOriginHeaderValue
, to allow
the control of the 'Access-Control-Allow-Origin'
http header in the captcha endpoint responses
- Added the support for the AEM and other Sling-based apps by allowing for the
botdetect.xml
file location setting through the
ServletContext.setAttribute()
method, too -- only the ServletContext.setInitParameter()
method was supported
previously
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use HSQLDB as its session storage
-- but the
hsqldb.jar
could not be loaded
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Redis as its session storage
-- but the
jedis
client library could not be loaded
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Memcached as its session storage
-- but the
spymemcached
client library could not be loaded
- Changed the
botdetect.xml
configuration file format in order to equalize it across all three supported technologies. From now on,
the enum-based option settings previously written in SCREAMING_SNAKE_CASE
will be written in PascalCase
- Added the Content-Type
'text/html; charset=UTF-8'
to the captcha endpoint response with the captcha html markup
- Temporary switched off the
Same-Domain
rule that required app's frontend and backend hosts to be on the same domain; and whose
violation resulted with the '400 Bad Request' error. It caused too much troubles to those integrating BotDetect for the first time.
It will be reimplemented in one of the subsequent minor releases in a different way that will not stall the integration effort while
one is searching for the root cause of the problem.
The typical root causes of the problem were the use of the frontend.local
& backend.local
instead of the frontend.app.local
& backend.app.local
, or a server or reverse-proxy misconfiguration
Traditional API:
- Reincluded the old
bdc4-traditional-api-jsp-jquery-validation-captcha-example
under the new name
t_api-captcha-jsp2-contact_form-jquery
-- the example was erroneously removed from the distribution in the v4.0.Beta3.6
Traditional API & Simple API:
- Fixed a bug, introduced in the v4.0.Beta3.2, causing the
'java.lang.NullPointerException'
exception when the captcha validation is executed after the session expiration
Packaging:
- Renamed all examples in order to make example naming more consistent and names more informative
..............................................................
Old Releases
Simple API -- simplification & cleanup. Upgrade when it fits you!
Simple API (Experimental):
- Removed the option to generate a captcha without specifying a captchaStyle. On such a request the client side will get an 400 error with the
'By the client requested CaptchaStyle name is not defined in the botdetect.xml!' message
- Added the
captcha.getUserEnteredCaptchaCode()
function to the client-side API
- Deprecated the
captcha.validateUnsafe()
client-side API function; it will be removed in one of subsequent minor updates
- Deprecated the
baseUrl
botdetect.xml option; it will be removed in one of subsequent minor updates
- Changed the default
SimpleCaptchaServlet
URL mapping from the /botdetectcaptcha
to the
/simple-captcha-endpoint
[back to the top of the page]
iOS 12+ audio support and bugfix release. Upgrade when it fits you!
Simple API (Experimental):
- Added the new BotDetect React Captcha component (back-ported from the Beta4)
- Added the new React Basic and React Form examples (back-ported from the Beta4)
- Added
errorLoggingEnabled
option which controls whether or not the BotDetect's internal exceptions will be logged to application
server's log
- Fixed a bug causing HSQLDB persistence provider to open multiple connections to the HSQLDB database
- Fixed a bug causing Redis persistence provider to open multiple connections to the Redis server
Traditional API:
- Fixed a bug causing JSF2 Captcha tag to load an incorrect BotDetect stylesheet resource
Traditional API & Simple API:
- Added support for audio on iOS 12
- Fixed a bug causing a black rectangle to be displayed instead of a captcha image in IE11 on Win7+SP1 without some of the patches that come
with SP2/3 installations
- Fixed a bug preventing Captcha to be displayed in the IE11's Emulation of the IE9 and IE10 Document modes
- Merged BotDetect's client side scripts into one in order to reduce the number of BotDetect related requests sent to the back-end
- Fixed the bug causing the 'home' and 'left-arrow' keys to misfunction in the captcha code user input field after the 'reload' button is clicked
- Fixed a bug causing the broken disabled-sound-icon if the sound package for an active localization is not deployed yet
- Fixed a bug causing only the Captcha in the first tabView to be loaded successfully when all of the following conditions are met: (a) there are
multiple Captchas on a page, (b) each of them is in a different PrimeFaces tabView, and (c) the tabView's toggle mode is set to true.
[back to the top of the page]
iOS 11.3+ audio and bugfix release. Upgrade when it fits you!
Traditional API & Simple API:
- Added support for audio on iOS 11.3+
- Fixed a bug causing the input field to be disabled after a captcha reload; the bug manifested itself on Oracle WebLogic only
- Fixed a bug in testModeEnabled option that caused it to fail to turn-off some of the recently introduced spamfix features
[back to the top of the page]
Spamfix & Security release. Upgrade at the first opportunity!
Simple API (Experimental):
- Added support for setting
BDC_configFileLocation
context-param option in your application's configuration to let
BotDetect know its botdetect.xml file's location -- if/when WEB-INF/botdetect.xml default had to be changed (think: Spring Boot, Apache Sling, etc.)
- Reverted back to unembedded HSQLDB use (see the previous version release notes) because the embedded use is breaking application builds for developers
who have another HSQLDB version already embedded in their project
Traditional API & Simple API:
- Several security improvements
- Several spamfix improvements
- Fixed a bug causing all captcha code inputs, but the first one in a page markup, to be disabled in scenarios with multiple captchas on the same page.
- Fixed a bug causing occasional Captcha image loading slowness on idle RedHat based systems due to
slow SecureRandom's default seed generation method
- Fixed a bug occasionally causing the
'java.lang.IllegalStateException: The following session is not valid!'
exception on IBM HTTP Server 8.5
- Improved grayscale Captcha image feature by use of CSS Filter in compatible browsers
- Dropped support for the following browsers:
- Internet Explorer versions before IE 8
- Firefox versions before v52
- Chrome versions before v49
- Safari (MacOSX) versions before v5
- Safari (Windows) all versions
- Opera versions before v36
In other words, those last remaining few still using the Windows XP should update their browsers to the latest version that still works on XP.
If they cannot be bothered to update their browsers -- we cannot be bothered neither -- nor you should be!
[back to the top of the page]
Spamfix release, upgrade at the first opportunity.
Traditional API:
- Fixed a bug occasionally causing the exception:
'java.lang.ClassCastException:
com.captcha.botdetect.internal.core.captchacode.CodeCollection
cannot be cast to
com.captcha.botdetect.internal.core.captchacode.CodeCollection'
Simple API (Experimental):
- Added support for CORS scenarios where frontend and backend code are hosted on different sub-domains of the same domain
- Added
baseUrl
option which allows usage of an absolute captcha handler url when backend and frontend applications are hosted on
different sub-domains of the same domain
- Removed external dependency on HSQLDB database provider by embedding it directly into the botdetect-4.0.beta3.2.jar
- Upgraded Redis persistence provider to work with Jedis version 2.5.0 or newer. Version 2.9.0 or newer was required before
- Added the new BotDetect jQuery Captcha plugin
- Added the new jQuery Basic and jQuery Form examples
- Added Angular 5 support into the updated BotDetect Angular Module
- Fixed a bug causing Memcached persistence provider to open multiple connections to the Memcached server
- Renamed
SimpleCaptcha
class getValidatingInstanceKey()
method. It is getValidatingCaptchaIdKey()
now
- Moved
simple-botdetect-jsp20.jar
into botdetect-jsp20.jar
- Moved
simple-botdetect-jsf20.jar
into botdetect-jsf20.jar
- Moved
simple-botdetect-jsf12.jar
into botdetect-jsf12.jar
- Fixed a bug with Captcha validation always failing in JSF forms due to wrong usage of
styleName
attribute instead of id
attribute
- Renamed simpleCaptcha JSP & JSF tags'
styleName
attribute to id
attribute
- Namespace of simpleCaptcha tag in JSP pages has been changed from
uri="https://captcha.com/java/jsp"
to uri="https://captcha.com/java/jsp/simple-api"
- Namespace of simpleCaptcha tag in Standard JSF(
.jsp
) view has been changed from uri="https://captcha.com/java/jsf"
to uri="https://captcha.com/java/jsf/simple-api"
- Namespace of simpleCaptcha tag in Facelets(
.xhtml
) view has been changed from uri="https://captcha.com/java/jsf"
to uri="https://captcha.com/java/jsf/simple-api"
Traditional API & Simple API:
- Several security improvements, upgrade at the first opportunity
- Fixed a bug causing the Captcha audio to fail to play for the clients running iOS 11+ due to HTTP_X_PLAYBACK_SESSION_ID header being omitted in their
HTML5 audio requests
- Fixed a bug causing the Captcha audio to fail to play over SSL/TLS for the clients running Safari on iOS & OSX.
This is not related to the wider issue of iOS clients refusing to play Html5 audio requested via SSL/TLS if the server runs on a self-signed certificate.
- Added encryption of the querystring in remote.captcha.com calls in order to avoid leaking BotDetect version info to spammers
- Captcha Image and Captcha Sound styles settings are ignored in the Free Version
- BotDetect Java Captcha can be used as a bundle in OSGi environment, now
- Added grayscale Captcha image feature to the Paid Version. To make your designer happy grayscale is made default.
'On hoover event' reverts it temporary back to color.
- Improved the Simplified and Traditional Han Captcha character set definitions to reduce chances of character confusion and increase Captcha readability;
'水 (water)' and '木 (wood)' signs are removed from Captcha codes
[back to the top of the page]
Simple API (Experimental):
- Fixed a bug with Captcha audio not playing on iOS & OSX due to serialization issue with a particular iOS & OSX specific sound workflow
Traditional API & Simple API:
- Added Expression Language (EL) support for JSP Captcha tag attributes
- Fixed a bug with Captcha being unable to auto-focus cursor at captcha-code-input-field control when control's ID is generated dynamically in a view
[back to the top of the page]
Traditional API:
- Added web.xml
BDC_servletRequestPath
option for customizing CaptchaServlet
url pattern
- Fixed a bug which caused broken Captcha sound icon when sound icon url is customized
- Fixed a bug which caused broken Captcha reload icon when reload icon url is customized
Simple API (Experimental):
- Introduction of botdetect.xml configuration file
- Introduction of Captcha styles consisting of various combinations of image and sound algorithms and other Captcha settings
- Added Captcha style configuration through botdetect.xml file
- Added botdetect.xml
servletRequestPath
option for customizing SimpleCaptchaServlet
url pattern
- Removed dependency on HttpSession as a server side persistence mechanism
- Added support for HSQLDB persistence-provider
- Added support for Memcached persistence-provider to the Enterprise version
- Added support for Redis persistence-provider to the Enterprise version
- Added persistence provider configuration through botdetect.xml file
- Set HSQLDB persistence-provider as a default persistence-provider
- Added BotDetect Captcha client-side workflow for integrating Captcha in pure JavaScript applications
- Added the new BotDetect AngularJS and Angular 2+ Captcha modules
- Added AngularJS Basic and AngularJS Form examples
- Added Angular 2+ Basic and Angular 2+ Form examples
[back to the top of the page]
- Fixed a bug resulting with
BDC_locale
option setting in web.xml being ignored
- Fixed a bug resulting with
CaptchaBase
object not being completely serializable due to wrong Localization class declaration
- Moved all BotDetect's inlined script snippets to existing external script include in order to comply with Content Security Policy (CSP)
- Renamed
setAddInitScript(boolean)
method of Captcha
class to setAddInitScriptInclude(boolean)
- Renamed web.xml option
BDC_addInitScript
to BDC_addInitScriptInclude
- Renamed jsp captcha tag's attribute
addInitScript
to addInitScriptInclude
- Renamed jsf captcha tag's attribute
addInitScript
to addInitScriptInclude
- Several minor security improvements
Nothing really nasty -- but when your time allows upgrade anyway
- Added Spring Security example
- Added Struts Basic and Struts Form examples
- Added eight new SoundStyles to the Enterprise version -- for a total of 20 SoundStyles
[back to the top of the page]
- BotDetect Captcha library works in Java 5+ now
- Added
botdetect-jsf12.jar
package with JavaServer Faces 1.2 support
- Renamed the
botdetect-servlet25.jar
package filename to botdetect-servlet.jar
. It works with Servlet 2.3+ now
- The
getHtml(ServletContext)
method doesn't require parameter anymore. It is changed to getHtml()
- Namespace of Captcha tag in JSP pages has been changed from
uri="botDetect"
to uri="https://captcha.com/java/jsp"
- Namespace of Captcha tag in Standard JSF(
.jsp
) view has been changed from uri="botDetect"
to uri="https://captcha.com/java/jsf"
- Namespace of Captcha tag in Facelets(
.xhtml
) view has been changed from uri="botDetectFacelets"
to uri="https://captcha.com/java/jsf"
[back to the top of the page]
- Java port is switched to BD4 API; and it is feature complete now. However, it also means that v4.0.Alpha5 breaks the compatibility with v4.0.Alpha4 which was based on BD3 API
- Localized Captcha generation, using various Unicode character sets and downloadable multi-language sound pronunciations
- Added 2 new audio Captcha sound styles (
Collapse
, Seeker
), not available in free versions of BotDetect / restricted to paid versions of BotDetect only
- Added rel="nofollow" to audio Captcha button link
- Added one new JSF login form filter captcha code example
- Changed package name of BotDetect Captcha to start with
com.captcha.botdetect.
instead of with botdetect.
as previous versions did
- The BotDetect enumeration naming convention is now changed to
UPPERCASE_UPPERCASE
- Changed some APIs of
Captcha
, and JsfCaptcha
classes. See the migration guide for more details
- BotDetect Java code is now separated into multiple jars in order to support different versions of Servlet, JavaServer Pages, and JavaServer Faces
- BotDetect Captcha configuration code examples are reorganized, improved and replaced with the new BotDetect Captcha options code examples: Captcha application config settings code example, Captcha form object settings code example, Captcha request dynamic settings code example, and Captcha client-side workflow settings code example
- Merged the old "custom character set" and "banned character sequences" settings into the new "disallowed code substrings" setting
- Removed Sound Captcha Button from TabIndex when sound functionality (and sound icon respectively) are disabled
- Fixed a bug with Captcha audio not playing on iPhone when a user either uses
<distributable/>
element in web.xml
file or sets <Context distributable="true"/>
in context.xml
file
- Fixed a bug with the bdc-reload-small-disabled icon not displaying following the Reload or Sound buttons clicks
- Fixed a bug with Captcha image not displaying when specifying image style for captcha image, but this style is a restricted image style in free version
- Fixed a bug with the
SoundStartDelay
setting being ignored, on repeated Captcha sound icon clicks, when captcha sound was fetched from a client's cache
- BotDetect client-side instance function
Validate()
has been renamed to StartAjaxValidation()
, and no longer sets the ValidationResult
instance property (Ajax validation result is available through AjaxValidationPassed
or AjaxValidationFailed
callbacks)
- BotDetect client-side function
BotDetect.RegisterCustomHandler()
now executes user-defined code before the default library code (the opposite from old version implementation, allowing greater flexibility of client-side behavior)
- Changed page layout of all examples to better adapt to browser window width
- Test Mode Enabled setting is not available in free versions of BotDetect / restricted to paid versions of BotDetect only
[back to the top of the page]
v4.0.Alpha4 Released 2016-03-07
- Fixed a bug with Captcha sound not playing on iOS devices
- Added
WavPcm8bit8kHzMono
Captcha sound format
- Added a JavaScript workaround for Back button issues with browsers re-displaying an expired Captcha image despite its
"no-cache, no-store"
Http response headers
- Helplink page moved from captcha.com to captcha.org site; added rel="follow"
- Switched to semantic versioning
- Documented BotDetect dependency management with Gradle, Ant, and Ant+Ivy
[back to the top of the page]
v3.0.Alpha3 Released 2015-12-03
- Fixed the NullPointerException exception in botdetect.web.Captcha.getRemoteScript(...) on JBoss application server
- Added context-option captchaRemoteScript (true | false) which turns off remote scripting functionality in the Enterprise version of BotDetect Java Captcha
- Added rel="nofollow" to helplink
- Changed BotDetect’s library's jar name to contain information about library version
- Changed Example war files to have all library dependencies embedded
- Created BotDetect Maven package, and made it available in our public git repository (git.captcha.com)
- Documented BotDetect dependency management with Maven
[back to the top of the page]
v3.0.Alpha2 Released 2015-06-06
- Implemented Captcha sound functionality for Captcha accessibility
[back to the top of the page]
v3.0.Alpha1 Released 2014-10-13
- First alpha release, implementing basic Captcha image generation and validation
[back to the top of the page]
PHP CAPTCHA Generator RoadmapLast updated: 2019-07-22
Version:
- Several minor 4.2.x spamfix releases
ETA:
- During the time leading to the 4.3
Status:
|
Features:
In order to give spammers a few years worth of extra homework 'spamfix' features will not be detailed in the roadmap and
release notes -- too few folks other than spammers would benefit from it.
If you are among those few who must know then license the source code -- and indulge in digging as much as it pleases you.
In general, the changes will go in the following directions:
-
Switching to grayscale algos to avoid interfering with your designs, and then retiring 'the named algo' concept entirely.
-
Increasing the number of algos and tweaking them frequently.
-
Making different tech backends render differently. That will turn BD into three different captchas;
each with a slice of the former marketshare; killing financial incentive for breaking any of them.
-
Obscuring the algos visually in order to turn the tracking of an algo existence and its future changes into an exercise in
futility.
Comments:
-
Those changes will make preparation of the training datasets crazy expensive; but the source code will have to be kept
away from spammers. Therefore, there will be licensing, pricing, and order processing changes that will allow for proper user vetting.
|
Version:
|
Features:
-
Integration examples for various workflows in Meteor, Bootstrap js extensions, Backbone, Ember, Vue.js and other
popular javascript frameworks.
-
Support for Amazon DynamoDB, Amazon Elasticache, Azure Redis Cache, MySQL/MariaDb, Oracle Coherence, Oracle NoSQL Database,
Oracle Database, MSSQL Server, etc. as the BotDetect persistence-providers.
-
Native support for responsive UI usage scenarios; now it is adaptive only.
-
Drupal, Joomla, Magento, etc. integrations.
Comments:
|
..............................................................
Release History
This is the version history of the BotDetect PHP Captcha library:
..............................................................
Current Release
Bugfix release. Upgrade when it fits you!
Simple API (Experimental):
- Added the two options,
accessControlAllowOriginHeaderEnabled
and accessControlAllowOriginHeaderValue
, to allow
the control of the 'Access-Control-Allow-Origin'
http header in the captcha endpoint responses
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use SQLite as its session storage
-- but the
SQLite3
PHP extension is not installed or enabled
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Redis as its session storage
-- but the
predis
client library could not be loaded
- Added the verbose '500 Error' that will be returned to the client when the Simple API is configured to use Memcached as its session storage
-- but the
php-memcached
PHP extension is not installed or enabled
- Added the Content-Type
'text/html; charset=UTF-8'
to the captcha endpoint response with the captcha html markup
- Temporary switched off the
Same-Domain
rule that required app's frontend and backend hosts to be on the same domain; and whose
violation resulted with the '400 Bad Request' error. It caused too much troubles to those integrating BotDetect for the first time.
It will be reimplemented in one of the subsequent minor releases in a different way that will not stall the integration effort while
one is searching for the root cause of the problem.
The typical root causes of the problem were the use of the frontend.local
& backend.local
instead of the frontend.app.local
& backend.app.local
, or a server or reverse-proxy misconfiguration
Traditional API:
- Reincluded the old
traditional-api-php-jquery-validation-captcha-example
under the new name
t_api-captcha-plainphp-contact_form-jquery
-- the example was erroneously removed from the distribution in the v4.2.4
Traditional API & Simple API:
- Fixed a bug, introduced in the v4.2.0, causing the
'Fatal error: Uncaught Error: Call to a member function on null...'
exception when the captcha validation is executed after the session expiration
- Added
errorLoggingEnabled
option which controls if the BotDetect's internal exceptions will be logged with
the error_log()
function
Packaging:
- Renamed all examples in order to make example naming more consistent and names more informative
..............................................................
Old Releases
Simple API -- simplification & cleanup. Upgrade when it fits you!
Simple API (Experimental):
- Added
SoundPackagesFolder
configuration option that allows
for customizing the location of BotDetect sound packages
- Removed the option to generate a captcha without specifying a captchaStyle. On such a request the client side will get an 400 error with the
'By the client requested CaptchaStyle name is not defined in the botdetect.xml!' message
- Added the
captcha.getUserEnteredCaptchaCode()
function to the client-side API
- Deprecated the
captcha.validateUnsafe()
client-side API function; it will be removed in one of subsequent minor updates
- Deprecated the
baseUrl
botdetect.xml option; it will be removed in one of subsequent minor updates
- Fixed a bug causing the occasional
'SQLite3Stmt::execute(): Unable to execute statement: database is locked'
error
Traditional API:
- Added SoundPackagesFolder configuration option that allows
for customizing the location of BotDetect sound packages
[back to the top of the page]
PHP 7.2, iOS 12 audio and bugfix release Upgrade when it fits you!
Simple API (Experimental):
- Added the new BotDetect React Captcha component (back-ported from the v4.3)
- Added the new React Basic and React Form examples (back-ported from the v4.3)
- Fixed a bug causing the normal-sized reload icon to be displayed instead of the small-sized one for Captcha images with height of less than 50px
- Fixed a bug causing the "Undefined index" error and a failure to generate a Captcha image when the Locale is set to a language that uses a
Non-Latin charset
Traditional API:
- Fixed a bug causing all option settings except
CaptchaId
, InstanceId
, UserInputId
, and LimitSoundRegeneration
to be ignored when using
Captcha instance approach (e.g. $ExampleCaptcha->OptionName = OptionValue;
) due to changes of Captcha initialization workflow.
This bug was introduced in the version 4.2.0.
Setting of options through CaptchaConfig.php configuration file was not affected with it
Traditional API & Simple API:
- Added support for PHP 7.2
- Added support for audio on iOS 12
- Fixed a bug causing a black rectangle to be displayed instead of a captcha image in IE11 on Win7+SP1 without some of the patches that come
with SP2/3 installations
- Merged BotDetect's client side scripts into one in order to reduce the number of BotDetect related requests sent to the back-end
- Fixed the bug causing the 'home' and 'left-arrow' keys to misfunction in the captcha code user input field after the 'reload' button is clicked
- Fixed a bug causing the broken disabled-sound-icon if the sound package for an active localization is not deployed yet
[back to the top of the page]
iOS 11.3+ audio and bugfix release Upgrade when it fits you!
Simple API (Experimental):
- Fixed a bug preventing Captcha sound from playing on iOS devices
- Fixed a bug with SoundRegenerationMode option setting
None
causing it not to produce any effect
and to default to setting Limited
instead
- Fixed a bug causing Captcha code input field to be disabled if Captcha instance userInputID option is not set
Traditional API & Simple API:
- Added support for audio on iOS 11.3+
- Fixed a bug in testModeEnabled option that caused it to fail to turn-off some of the recently introduced spamfix features
- Fixed a bug preventing Captcha to be displayed in the IE11's Emulation of the IE9 and IE10 Document modes
- Fixed a bug resulting with Captcha image not loading in the Stock browser on Android 4.4
[back to the top of the page]
Spamfix & Security release. Upgrade at the first opportunity!
Traditional API:
- Renamed AddInitScript option to AddInitScriptInclude
Traditional API & Simple API:
- Several security improvements
- Several spamfix improvements
- Fixed a bug causing all captcha code inputs, but the first one in a page markup, to be disabled in scenarios with multiple captchas on the same page.
- Fixed a bug causing 'imagettftext() could not find/open font' error on some RedHat based systems
- Fixed a bug causing 'Undefined offset' error when Locale is set to language that uses Non-Latin charset due to omission to use mbstring functions
in some code parts added in v4.2.0
- Improved grayscale Captcha image feature by use of CSS Filter in compatible browsers
- Dropped support for the following browsers:
- Internet Explorer versions before IE 8
- Firefox versions before v52
- Chrome versions before v49
- Safari (MacOSX) versions before v5
- Safari (Windows) all versions
- Opera versions before v36
In other words, those last remaining few still using the Windows XP should update their browsers to the latest version that still works on XP.
If they cannot be bothered to update their browsers -- we cannot be bothered neither -- nor you should be!
[back to the top of the page]
Spamfix release, upgrade at the first opportunity.
BotDetect CAPTCHA PHP require PHP 5.3+ to run
Simple API (Experimental):
- Introduction of botdetect.xml configuration file
- Introduction of Captcha styles consisting of various combinations of image and sound algorithms and other Captcha settings
- Added Captcha style configuration through botdetect.xml file
- Removed dependency on Session as a server side persistence mechanism
- Added support for SQLite persistence-provider
- Added support for Memcached persistence-provider to the Enterprise version
- Added support for Redis persistence-provider to the Enterprise version
- Added persistence provider configuration through botdetect.xml file
- Set SQLite persistence-provider as a default persistence-provider
- Added the new BotDetect AngularJS and Angular 2+ Captcha modules
- Added AngularJS Basic and AngularJS Form examples
- Added Angular 2+ Basic and Angular 2+ Form examples
- Added the new BotDetect jQuery Captcha plugin
- Added the new jQuery Basic and jQuery Form examples
Traditional API & Simple API:
- Several security improvements, upgrade at the first opportunity
- Fixed a bug causing the Captcha audio to fail to play for the clients running iOS 11+ due to HTTP_X_PLAYBACK_SESSION_ID header being omitted in their
HTML5 audio requests
- Fixed a bug causing the Captcha audio to fail to play over SSL/TLS for the clients running Safari on iOS & OSX.
This is not related to the wider issue of iOS clients refusing to play Html5 audio requested via SSL/TLS if the server runs on a self-signed certificate.
- Added encryption of the querystring in remote.captcha.com calls in order to avoid leaking BotDetect version info to spammers
- Captcha Image and Captcha Sound styles settings are ignored in the Free Version
- Added grayscale Captcha image feature to the Paid Version. To make your designer happy grayscale is made default.
'On hoover event' reverts it temporary back to color.
- Improved the Simplified and Traditional Han Captcha character set definitions to reduce chances of character confusion and increase Captcha readability;
'水 (water)' and '木 (wood)' signs are removed from Captcha codes
- Moved all BotDetect's inlined script snippets to existing external script include in order to comply with Content Security Policy (CSP)
- Added eight new SoundStyles to Enterprise version -- for a total of 20 SoundStyles
[back to the top of the page]
[back to the top of the page]
- Added support for multi-voice pronunciation sound packages, improving audio Captcha security against automated analysis
- Added 2 new audio Captcha sound styles (
Collapse
, Seeker
), not available in free versions of BotDetect / restricted to paid versions of BotDetect only
- Certain Captcha image styles (
Bubbles
, Neon
, Neon 2
, Radar
, Ripple
, Ripple 2
, Electric
, Strippy
, Wave
, Ghostly
) are not available in free versions of BotDetect / are restricted to paid versions of BotDetect only
- BotDetect configuration API rewritten to be consistent (same settings named the same, using same defaults and valid value boundaries, and work the same across PHP/.NET/ASP technologies) and universal (allow controlling all aspects of Captcha behavior and appearance either through application config files or Captcha object instance properties)
- Improved Captcha configuration:
CaptchaConfig.php
user override now supports CaptchaId
-based conditional settings
- BotDetect v3 Captcha configuration code examples are reorganized, improved and replaced with the new BotDetect v4 Captcha options code examples: Captcha application config settings code example, Captcha form object settings code example, Captcha request dynamic settings code example, Captcha client-side workflow settings code example
- Merged the BD3 "custom character set" and "banned character sequences" settings into the BD4 "disallowed code substrings" setting
- Fixed a bug with the
SoundStartDelay
setting being ignored on repeated Captcha sound icon clicks (replaying the exact same sound in browsers that support Html5 audio)
- BotDetect client-side instance function
Validate()
has been renamed to StartAjaxValidation()
, and no longer sets the ValidationResult
instance property (Ajax validation result is available through AjaxValidationPassed
or AjaxValidationFailed
callbacks)
- BotDetect client-side function
BotDetect.RegisterCustomHandler()
now executes user-defined code before the default library code (the opposite from old version implementation, allowing greater flexibility of client-side behavior)
- Changed all examples to include user stylesheets after the BotDetect layout stylesheet, so user styles can override library defaults
- Changed page layout of all examples to better adapt to browser window width
- Added
Captcha::LibInfo()
debug function for getting current BD version + running PHP version, included in all examples
- Helplink page moved from captcha.com to captcha.org site; added rel="follow"
- Switched to semantic versioning
[back to the top of the page]
- Added alternative Multibyte string implementation which is used to generate Non-Latin Captcha codes if (defaultly used) 'mbstring' php extension is not installed
[back to the top of the page]
- Added rel="nofollow" to helplink
- Added rel="nofollow" to audio Captcha button link
- Changed the helplink <a href> to always show to captcha.com/captcha.html?integration ignoring the locale used
- Fixed a bug when validation result was always FALSE after submitting incorrect Captcha in some corner-case javascript-based usage scenarios
- Fixed a bug resulting with BotDetect Library throwing an error when used in PHP configurations that were built using "--disable-session" option
[back to the top of the page]
- Fixed a bug resulting with missing Http headers when handling invalid Captcha Http requests
[back to the top of the page]
- Fixed a bug resulting with errors when using Captcha locales using non-Latin character sets for generating Captcha codes
- Fixed a bug resulting in occasional PHP warnings when file access to Captcha sound package data cached in the system temp folder fails
[back to the top of the page]
[back to the top of the page]
- Improved Captcha security by using a random Captcha code length by default (4-6 characters instead of 5)
- Fixed a bug with Captcha sound not playing on iOS devices
- Fixed a bug with Captcha sound occasionally not playing on Android 4.1+ devices
- Implemented the sound regeneration mode Captcha configuration setting controlling how will multiple consecutive requests for Captcha audio be handled (defaulting to limited sound regeneration)
- Improved server resource conservation by replaying the generated Captcha sound on the client without requesting a new sound from the server, in Html5 Wav audio compatible browsers that support it
- Improved Captcha controls usability by disabling and enabling Captcha controls (sound and reload icons) simultaneously instead of individually
- Fixed a bug where BotDetect would occasionally add
"B:1"
lines to the PHP error log (removed a left-over debugging error_log()
call)
- Added user-friendly error messages when BotDetect is included in PHP websites without
gd
and mbstring
support
- Added support for
"nb"
and "nob"
Norwegian language codes in Captcha locales
- Added support for Indonesian Captcha localization (
"id-Latn-ID"
)
- Improved Captcha readability by removing the
"VV"
sequence from Latin Captcha codes (easily confused with "W"
in Captcha images)
- Minor improvements in readability, security and scalability of some
ImageStyles
(BlackOverlap
, Bullets
, Bullets2
, CaughtInTheNet
, CaughtInTheNet2
, Collage
, Corrosion
, Graffiti2
, Halo
, Lego
, Radar
, Snow
, Stitch
, Strippy
, Sunrays
, Sunrays2
, ThickThinLines
, ThickThinLines2
)
- Server-side caching of generated Captcha sounds (for iOS and
SoundRegenerationMode::None
use cases) uses PHP Session storage (should be automatically cleared often enough) instead of files in the system temp folder (might or might not be automatically cleared often enough)
- Added a JavaScript workaround for Back button issues with browsers re-displaying an expired Captcha image despite its
"no-cache, no-store"
Http response headers
- Fixed a minor syntax error in the BotDetect layout stylesheet (changed
"filter: alpha(opacity:90)"
to "filter: alpha(opacity=90)"
)
- Changed the default reload button tooltip from
"Reload the Captcha code"
to more user-friendly "Change the Captcha code"
- Fixed a bug in the PHP Login Captcha code example using a non-existent path as the form action
- Fixed a bug with Captcha validation failing on full form submit in the the PHP jQuery Ajax contact form Captcha code example
- Changed the jQuery Validation Captcha code example to execute client-side validation on textbox blur; fixed a bug with jQuery validation script sequence in IE 6; updated the link to the jQuery validate plugin homepage
- Fixed the description of the Captcha sound start delay configuration property in the Captcha customization code example (the Captcha code textbox label is pronounced, not the Captcha sound icon label)
- Changed the Captcha customization example to log custom BotDetect client-side events on the form instead of displaying message boxes
[back to the top of the page]
- Implemented multi-language Captcha image generation & validation, supporting various Unicode character sets and RTL drawing (charsets: Latin, Cyrillic, Greek, Hebrew, Arabic, Devanagari, Hangul, Katakana, Hiragana, Han Simplified, Han Traditional, Bopomofo)
- Implemented multi-language Captcha audio generation, using individual language pronunciation packages downloadable separately from the main Captcha library
- Improved Captcha library ease of deployment: changed Captcha library paths to work by default on servers configured to lowercase all request paths on case-sensitive file-systems (e.g. using
RewriteRule . ${lc:%{REQUEST_URI}}
with Apache on Linux)
- Simplified Captcha library download package folder names (
"CaptchaLibrary"
-> "lib"
, "WebApp"
-> "samples"
)
- Improved Captcha library compatibility: renamed all internal BotDetect classes and variables with
"LBD_"
prefixes to reduce probability of name clash with 3rd party libraries and user code even when running PHP 5.2.x
- Fixed a bug with Captcha image Http headers not being set properly when PHP output buffering is disabled (
output_buffering = Off
in php.ini
)
- Fixed a bug with Captcha images containing unreadable characters in older PHP 5.2.x releases
- Fixed a bug with the Chess3D image style returning blank images in older PHP 5.2.x releases
- Improved Captcha audio usability in browsers supporting Html5 Wav audio by keeping the sound icon disabled until Captcha playback ends
- Improved the BotDetect layout stylesheet to avoid slight Captcha image and icon movement when they are selected using the keyboard
- Improved handling of invalid Captcha Http requests sent by some bots (with
&amp;amp;
-style constructs in the querystring)
- Improved usability of BotDetect code examples: display user-friendly errors if
GD
or mbstring
are missing
- Added remote script functionality intended for statistics collection and proof-of-work confirmation (work in progress)
- Allowed Captcha help link text configuration for free version users
[back to the top of the page]
- Fixed a bug in Captcha drawing code causing images with width:height ratios significantly different than the Captcha code length to contain black rectangles and possibly missing characters in the right half of the Captcha image
- Improved appearance and readability of Captcha text drawn for all
ImageStyles
- Fixed a bug with Captcha sound not playing on Android 4.0+ devices
- Fixed a bug with Captcha sound not playing on iOS 6.0+ devices
- Fixed a bug with the Captcha client-side initialization not triggering in the jQuery
ready()
handler when jQuery.noConflict()
is used
- Fixed a bug with automatic expired Captcha reloading only triggering once
- Fixed a bug with the help link mode not defaulting to
HelpLinkMode::Image
in paid versions' copies of BotDetect
- Improved usability of automatic expired Captcha reloading: the reload icon will now be disabled after the automatic reload time-outs, to prevent Captcha generation with an expired Session
- Improved configurability of the Captcha tabindex setting:
-1
is now a special value that will disable tabbing over Captcha elements in most browsers
- Improved configurability of the Captcha persistence medium: user persistence functions can now be declared outside the base
CaptchaConfig.php
file and specified by name
- Improved configurability of the Captcha handler Url: base paths including a query string are now allowed
[back to the top of the page]
- Implemented Captcha sound functionality for Captcha accessibility
- Increased the average size of text in Captcha images to increase Captcha readability
- Implemented the option to easily disable certain Captcha image or sound styles purely through Captcha configuration
- Added the PHP jQuery Ajax contact form Captcha code example to the Captcha library download package
- Fixed a bug in the BotDetect layout CSS causing the Reload icon to not be hidden for clients with JavaScript disabled
- Fixed a bug with automatic expired Captcha image reloading executing multiple times after multiple manual Reload icon clicks (only a single JavaScript timeout is set at a time now)
- Changed JavaScript user input case adjustment to auto-uppercase input instead of auto-lowercasing it, since all current Captcha image styles use uppercase characters; updated all related configuration settings
- Fixed a bug with automatic user input case adjustment resulting in incorrect caret positioning for iPad users
- Added the
LBD_ProgressIndicator
CSS class to the Captcha reload progress indicator for easier styling
- Decreased height of the license-restricted link below Captcha images generated by the Free version of BotDetect from 15px to 10px; fixed link appearance (color scheme and font selection) to make it readable at the new size
- Improved configurability of the Captcha help link (instead of completely removing it from paid versions of BotDetect), allowing choice between adding it to the Captcha image (
HelpLinkMode::Image
) or below it (HelpLinkMode::Text
); Free version users can also use these settings, but can not turn the link off completely like paid versions' users can
[back to the top of the page]
[back to the top of the page]
v3.0.Alpha1 Released 2012-02-06
- First alpha release, implementing basic Captcha image generation and validation
[back to the top of the page]
ASP CAPTCHA Generator RoadmapLast updated: 2018-02-24
Version:
ETA:
Status:
|
Discontinuation Notice:
-
The time has run out for the standalone Classic ASP port.
-
Financially, it stopped making any sense ages ago.
-
We kept it on a life support for some years in order to give more time to those still locked in the Classic ASP to move on.
-
COM interface (exposing the Simple API functionalities) will find its new home in the version 4.5 of the BotDetect ASP.NET port.
-
Thin Classic ASP code layer (exposing the Simple API functionalities) is very likely to appear in the version 4.5 of the BotDetect
ASP.NET CAPTCHA port, too.
-
BotDetect ASP CAPTCHA Traditional API is gone for good.
-
If you bought BotDetect ASP CAPTCHA License Subscription for the first time after the 2017/03/08 you are eligible for either the
refund of the ASP part of that License Subscription, or for the $1 switch to the BotDetect ASP.NET License Subscription.
|
..............................................................
Release History
This is the version history of the BotDetect ASP Classic Captcha component:
..............................................................
Current Release
- Removed Sound Captcha Button from TabIndex when sound functionality (and sound icon respectively) are disabled
- Added an option to turn-on IIS Management Scripts and Tools feature during BotDetect installation in order to ensure that BotDetect examples are installed properly if the feature was turned off initially
- Added rel="nofollow" to audio Captcha button link
- Test Mode Enabled setting is not available in free versions of BotDetect / restricted to paid versions of BotDetect only
[back to the top of the page]
..............................................................
Old Releases
- Added support for multi-voice pronunciation sound packages, improving audio Captcha security against automated analysis
- Added 2 new audio Captcha sound styles (
Collapse
, Seeker
), not available in free versions of BotDetect / restricted to paid versions of BotDetect only
- Certain Captcha image styles (
Bubbles
, Neon
, Neon 2
, Radar
, Ripple
, Ripple 2
, Electric
, Strippy
, Wave
, Ghostly
) are not available in free versions of BotDetect / are restricted to paid versions of BotDetect only
- Removed Web-unfriendly BMP image format support
- BotDetect configuration API rewritten to be consistent (same settings named the same, using same defaults and valid value boundaries, and work the same across PHP/.NET/ASP technologies) and universal (allow controlling all aspects of Captcha behavior and appearance either through application config files or Captcha object instance properties)
- Improved Captcha configuration:
CaptchaConfig.asp
user override now supports CaptchaId
-based conditional settings
- BotDetect v3 Captcha configuration code examples are reorganized, improved and replaced with the new BotDetect v4 Captcha options code examples: Captcha application config settings code example, Captcha form object settings code example, Captcha request dynamic settings code example, Captcha client-side workflow settings code example
- Merged the BD3 "custom character set" and "banned character sequences" settings into the BD4 "disallowed code substrings" setting
- Fixed a bug with the
SoundStartDelay
setting being ignored on repeated Captcha sound icon clicks (replaying the exact same sound in browsers that support Html5 audio)
- BotDetect client-side instance function
Validate()
has been renamed to StartAjaxValidation()
, and no longer sets the ValidationResult
instance property (Ajax validation result is available through AjaxValidationPassed
or AjaxValidationFailed
callbacks)
- BotDetect client-side function
BotDetect.RegisterCustomHandler()
now executes user-defined code before the default library code (the opposite from old version implementation, allowing greater flexibility of client-side behavior)
- The
BotDetect.asp
include no longer always adds the BotDetect stylesheet automatically; instead, the user can include the BotDetect stylesheet anywhere they would usually add stylesheets to page <head>
(the same how ASP.NET non-WebForms and PHP versions of BotDetect work)
- Changed all examples to include user stylesheets after the BotDetect layout stylesheet, so user styles can override library defaults
- Changed page layout of all examples to better adapt to browser window width
- Helplink page moved from captcha.com to captcha.org site; added rel="follow"
- Switched to semantic versioning
[back to the top of the page]
- Added 'X-Robots-Tag: noindex, nofollow, noarchive, nosnippet' to image and audio Captchas
- Fixed "Object reference not set to an instance of an object" error when user with expired session requests audio Captcha
[back to the top of the page]
- Added rel="nofollow" to helplink
[back to the top of the page]
[back to the top of the page]
- Improved Captcha security by using a random Captcha code length by default (4-6 characters instead of 5)
- Fixed a bug with Captcha sound not playing on iOS devices when the Captcha form is loaded over SSL
- Fixed a bug with Captcha sound occasionally not playing on Android 4.1+ devices
- Implemented the sound regeneration mode Captcha configuration setting controlling how will multiple consecutive requests for Captcha audio be handled (defaulting to limited sound regeneration)
- Improved server resource conservation by replaying the generated Captcha sound on the client without requesting a new sound from the server, in Html5 Wav audio compatible browsers that support it
- Improved Captcha controls usability by disabling and enabling Captcha controls (sound and reload icons) simultaneously instead of individually
- Added support for
"nb"
and "nob"
Norwegian language codes in Captcha locales
- Added support for Indonesian Captcha localization (
"id-Latn-ID"
)
- Improved Captcha readability by removing the
"VV"
sequence from Latin Captcha codes (easily confused with "W"
in Captcha images)
- Minor improvements in readability, security and scalability of some
ImageStyles
(BlackOverlap
, Bullets
, Bullets2
, CaughtInTheNet
, CaughtInTheNet2
, Collage
, Corrosion
, Graffiti2
, Halo
, Lego
, Radar
, Snow
, Stitch
, Strippy
, Sunrays
, Sunrays2
, ThickThinLines
, ThickThinLines2
)
- Added a JavaScript workaround for Back button issues with browsers re-displaying an expired Captcha image despite its
"no-cache, no-store"
Http response headers
- Fixed a minor syntax error in the BotDetect layout stylesheet (changed
"filter: alpha(opacity:90)"
to "filter: alpha(opacity=90)"
)
- Changed the default reload button tooltip from
"Reload the Captcha code"
to more user-friendly "Change the Captcha code"
- Removed an extraneous
"Server"
header from the Captcha image Http response
- Changed the jQuery Validation Captcha code example to execute client-side validation on textbox blur; fixed a bug with jQuery validation script sequence in IE 6; updated the link to the jQuery validate plugin homepage
- Fixed the description of the Captcha sound start delay configuration property in the Captcha customization code example (the Captcha code textbox label is pronounced, not the Captcha sound icon label)
- Changed the Captcha customization example to log custom BotDetect client-side events on the form instead of displaying message boxes
- Improved the BotDetect setup package: after installing Captcha examples and deploying them to
localhost
the setup will automatically launch the examples page, if a non-server OS is detected
[back to the top of the page]
- Fixed a bug in RTL alphanumeric Captcha code drawing: runs of latin digits are now properly drawn LTR as per the Unicode bidirectional algorithm
- Improved the default Captcha character set definitions to reduce chances of character confusion and increase Captcha readability: removed
'1'
from alphanumeric Hebrew Captcha codes, 'و'
and 'ه'
from Arabic Captcha codes, '3'
from alphanumeric Devanagari Captcha codes, 'ᅦ'
from Hangul Captcha codes, and 'う'
, 'く'
, 'ら'
and 'り'
from Hiragana Captcha codes
- Minor improvements in readability, security and scalability of some
ImageStyles
(Chalkboard
, Chess
, Circles
, Collage
, Lego
, Neon
, Ripple2
)
- Improved Captcha audio usability in browsers supporting Html5 Wav audio by keeping the sound icon disabled until Captcha playback ends
- Improved the BotDetect layout stylesheet to avoid slight Captcha image and icon movement when they are selected using the keyboard
- Simplified Start Menu folder names for installed ASP Captcha code examples
- Added remote script functionality intended for statistics collection and proof-of-work confirmation (work in progress)
- Allowed Captcha help link text configuration for free version users
[back to the top of the page]
- Fixed a bug with Captcha sound not playing on Android 4.0+ devices
- Fixed a bug with Captcha sound not playing on iOS 6.0+ devices
- Fixed a bug with the Captcha client-side initialization not triggering in the jQuery
ready()
handler when jQuery.noConflict()
is used
- Improved usability of automatic expired Captcha reloading: the reload icon will now be disabled after the automatic reload time-outs, to prevent Captcha generation with an expired Session
- Improved configurability of the Captcha tabindex setting:
-1
is now a special value that will disable tabbing over Captcha elements in most browsers
- Improved installation reliability of BotDetect demos & examples in cases when IIS version detection fails
[back to the top of the page]
- Added a configurable starting delay to JavaScript Captcha sound playback to increase accessibility in JAWS and similar screen readers (which might pronounce the sound icon label when it's selected and start playing Captcha audio simultaneously, making it hard to understand)
- Added user-friendly Captcha randomization functions (
LBD_RandomImageStyle()
, LBD_RandomImageStyleFrom(imageStyleNames)
, etc.); changed all code example CaptchaConfig.asp
files to use the new Captcha randomization functions, with some minor cleanup
- Implemented the option to easily disable certain Captcha image or sound styles purely through Captcha configuration
- Fixed a bug in the BotDetect features demo included with the installation (
Split2
was missing from the image style dropdown)
- Added the
LBD_ProgressIndicator
CSS class to the Captcha reload progress indicator for easier styling
- Optimized audio tone noise generation by only calculating one full sine period and reusing the result
[back to the top of the page]
- Fixed a bug in the BotDetect layout CSS causing the Reload icon to not be hidden for clients with JavaScript disabled
- Fixed a bug with automatic expired Captcha image reloading executing multiple times after multiple manual Reload icon clicks (only a single JavaScript timeout is set at a time now)
- Changed JavaScript user input case adjustment to auto-uppercase input instead of auto-lowercasing it, since all current Captcha image styles use uppercase characters; updated all related configuration settings
- Fixed a bug with automatic user input case adjustment resulting in incorrect caret positioning for iPad users
- Decreased height of the license-restricted link below Captcha images generated by the Free version of BotDetect from 15px to 10px; fixed link appearance (color scheme and font selection) to make it readable at the new size
- Improved configurability of the Captcha help link (instead of completely removing it from paid versions of BotDetect), allowing choice between adding it to the Captcha image (
LBD_HelpLinkModes("Image")
) or below it (LBD_HelpLinkModes("Text")
); Free version users can also use these settings, but can not turn the link off completely like paid versions' users can
[back to the top of the page]
- Fixed a bug with Captcha localization not recognizing the ISO-639-1 language code
ja
(Japanese)
- Fixed a bug in the setup package causing re-installation and updating issues (IIS 7.0+ only, the Asp Multiple Captchas Example wasn't being removed from IIS on uninstall)
- Fixed a bug with the BotDetect client-side script throwing
reloadLink is null
errors when Captcha reloading is disabled
- Fixed a bug with the built-in BotDetect client-side validation allowing further attempts after the first validation failure
- Fixed a bug with the BotDetect client-side initialization not working when the Captcha is shown inside a jQuery dialog
- Improved compatibility of the built-in BotDetect client-side validation with jQuery validation (changed the
?get=validationResult
endpoint response format, changed the response MIME type to application/json
)
- Improved ease of accessing the BotDetect client-side object in user scripts by referencing it through the custom
Captcha
property of the DOM element registered as the Captcha code user input field (through the UserInputID
server-side Captcha
object property)
- Minor client-side tweaks: added the
InstanceId
client-side object property for easier custom validation; replaced the InputElement
client-side object property with the GetInputElement()
function call to avoid circular references (and the possible memory leaks)
- Added a new code example showing how to integrate BotDetect Captcha validation with jQuery client-side validation (Asp jQuery Validation Captcha Example)
- Fixed a bug with the Asp form Captcha example and built-in Ajax Captcha validation example not saving the email field value properly
- Minor improvements in readability, security and scalability of some
ImageStyles
(Bullets
, Chipped
, Electric
, Radar
, Ripple
, SunAndWarmAir
)
- Added a short cooldown to sound icon clicks, reducing the chance of accidental multiple concurrent Captcha sound playbacks
- Improved Captcha icon display to help communicate that the reload icon is disabled while the Captcha image is reloading and that the sound icon is disabled while the Captcha sound cooldown is active
- Merged all CSS declarations into a single stylesheet for easier inclusion (removed
SoundPackageWarning.css
)
- Removed the help link from Captcha images to prevent accidental clicks and navigation issues for mobile visitors
- Added a license-restricted link to the bottom 15px of every Captcha image generated by the Free version of BotDetect
[back to the top of the page]
- Fixed a bug with Captcha image reloading occasionally throwing JavaScript errors in IE 8 when mousing over the Captcha image while it's reloading
- Improved Captcha image security: if no image style is set, randomize the image style for each generated Captcha image (instead of using
Chalkboard
by default)
- Improved Captcha image readability: tweaked most image styles to produce easier to read Captcha images
- Added a BotDetect trademark to Captcha images generated by the Free version of the component
- Improved Captcha sound security: if no sound style is set, randomize the sound style for each generated Captcha sound (instead of using
Dispatch
by default)
[back to the top of the page]
- Fixed a bug with the
LBD_CreateGuid
function setting the wrong object to Nothing
- Fixed a bug in Captcha Html generation outputting the
class="LBD_Placeholder"
attribute twice
- Added a workaround for the GbPlugin known issue causing Captcha validation issues for Brazilian visitors
- Improved Captcha image generation: slightly reduced
PaintMess
and Radar
contrast
- Added the Captcha component information display to all code examples
[back to the top of the page]
- Improved Captcha library handling of default Captcha icons: Reload and Sound icon layout is now automatically adjusted to fit Captcha images less than 50 pixels tall
- Improved the BotDetect Captcha Features Demo: the form now remembers set property values after clicking the
Validate
button after Apply
- Improved the Captcha Code Filtering Example: updated the example project explanation
[back to the top of the page]
- Added support for Captcha tabindex setting through the
TabIndex
control property
- Improved the BotDetect setup package, so minor updates automatically remove older versions (and don't require manually uninstalling the older version)
[back to the top of the page]
- Fixed a bug in the Polish locale-specific character set and pronunciation sound package: replaced
'V'
with 'W'
- Added the
OnHelpLinkClick
custom BotDetect client-side event
- Updated all default character set definitions to reduce chance of character confusion: removed
'7'
easily confused with '1'
from all CodeStyle.Alpha
and CodeStyle.Alphanumeric
Captcha codes
[back to the top of the page]
- Fixed a bug with the Lego Captcha image style placing the most noise over the last character
- Improved Captcha sound reliability by falling back to an assembly-embedded sound package for the default
"en-US"
locale if it's not present in the configured sound packages folder
[back to the top of the page]
- Fixed a bug with Captcha drawing code sometimes not placing random noise properly
- Improved Captcha image security, scaling, performance and readability (tweaked all 50 existing Captcha image styles)
- Added 10 new Captcha image styles:
Bubbles
, Electric
, MeltingHeat2
, Neon
, Neon2
, Radar
, Ripple
, Ripple2
, SpiderWeb2
, Split2
- Updated font declarations for East Asian locales, using bold fonts by default to make Captcha images easier to read
- Updated the default Han Simplified and Han Traditional character set definitions: removed the
纟
(0x7E9F, "silk") character from Captcha codes, since it isn't pronounceable
- The Captcha Reload button is now placed above the Captcha sound button, and only displayed if JavaScript is enabled (since it's JavaScript-dependent)
- The BotDetect client-side initialization script is now executed before
window.load
if possible (when the page DOM is ready)
- Added client ids to all relevant Captcha Html elements for easier custom scripting and styling, and changed Css class names and declarations a bit to keep them consistent
[back to the top of the page]
- Fixed a bug with the Captcha code generation occasionally using less than the full available character set for random code generation
- Fixed a bug in the BotDetect Sound Package processing code, which was incorrectly naming
.bdsp
files for locales with only the macrolanguage set
- Improved sound Captcha clarity when using various newly available localized pronunciations: tweaked the
Radio
, Robot
and Synth
sound generation algorithms
- Updated the default Cyrillic character set definition to reduce chance of character confusion: removed
'З'
(Ze) and '3'
(three) from alphanumeric Captcha codes
[back to the top of the page]
- Fixed a bug in the BotDetect client-side script include: the
BotDetect.Init()
function is now only called when the Captcha image is actually rendered on the page
- Fixed a bug in BotDetect audio processing code involving
Math.Abs(-32768)
edge case exceptions
- Updated BotDetect pronunciation sound packages for Canadian French and Mexican Spanish
- Updated default Latin character set definitions to reduce chance of character confusion with the 3.0 drawing changes (removed
'F'
sometimes confused with 'E'
, 'G'
confused with 'C'
, 'Q'
confused with 'O'
, 'Z'
confused with '2'
and '7'
confused with '1'
)
- Updated locale-specific default character set variants: removed
'W'
and 'Z'
for the Vietnamese locale
- Added a link to the BotDetect localization downloads page in the BotDetect Start Menu folder
[back to the top of the page]
- Added multi-language Captcha code generation & validation, supporting various Unicode character sets and RTL languages (charsets: Latin, Cyrillic, Greek, Hebrew, Arabic, Devanagari, Han Simplified, Han Traditional, Hangul, Bopomofo, Hiragana and Katakana)
- Added Captcha code character set customization options, using a user-defined character set for random Captcha code generation
- Added Captcha code filtering, allowing randomly generated Captcha codes to be checked against a user-defined list of banned character sequences
- Added Captcha code timeouts, so the Captcha can only be successfully solved within the specified time period after generation
- Improved Captcha image security against bots (added more segmentation challenges and randomness to all 50 BotDetect Captcha image styles)
- Improved Captcha image readability for humans (the text is larger, visual appearance is improved, there are less distortion challenges in all image styles)
- Added Captcha image color scheme customization options, where two user-defined colors can be used to adjust the Captcha color scheme to suit any website design
- Improved Captcha sound security, using 10 different sound styles with various effects, noises and randomizations (sound styles: Dispatch, HiveMind, Industrial, Pulse, Radio, RedAlert, Robot, Scratched, Synth, Workshop)
- Added multi-language Captcha sound generation, using individual language sound packages downloadable separately from the main control
- Improved Captcha sound compatibility, automatically using the HTML5
<audio>
element in supporting browsers
- Added a new sound format option (
WavPcm8bit8kHzMono
), resulting in smaller sound file downloads but reducing sound quality
- ASP improvements: added an include-able ASP Captcha library / module, significantly simplifying BotDetect integration (instead of copying the old
LanapBotDetectHandler.asp
file and pasting a large chunk of HTML to your form source)
- Configuration improvement: added a special
BotDetect\CaptchaConfig.asp
configuration file, allowing detailed customization of many BotDetect properties
- Client-side improvements: added customizable automatic user input lowercasing, textbox focusing on reload and sound Captcha icon clicks, and automatic image reloading on Captcha code timeouts,
- Fixed a bug with Captcha validation breaking when the same form is simultaneously open in multiple browser tabs (each Captcha instance now uses a unique key to store the Captcha code)
- Added a X-Robots-Tag Http header to CAPTCHA image and sound Http responses that prevents search engine indexing of CAPTCHA images and sounds
- Added new example projects (Captcha protection on login forms, Captcha protection on multiple forms in the same application, Captcha code filtering option, Captcha customization options) and demonstration forms (BotDetect image styles demo) demonstrating new v3.0 functionality
- Improved all web application descriptions, navigation and IIS compatibility
- Requirements change: the COM Captcha component is based on .NET, instead of unmanaged C++
- Added binary package downloads for machines where running the setup package is not feasible
[back to the top of the page]
v2.0.9 Released 2009-02-12
- Fixed a bug with the ASP audio CAPTCHA not playing in Opera 9.5 and newer
- Fixed a bug with the ASP audio CAPTCHA not matching the image CAPTCHA in Google Chrome (added a Chrome-specific workaround)
- Fixed a bug with the ASP audio CAPTCHA not playing in IE when using SSL offloading (added client-side SSL detection)
- Fixed a bug with failed ASP Ajax CAPTCHA validation attempts not clearing the stored CAPTCHA code
- Fixed a bug with ASP Ajax CAPTCHA validation always failing for named CAPTCHA instances (CaptchaId querystring parameter set)
[back to the top of the page]
v2.0.8 Released 2008-05-29
- Vista / Windows 2008 Server support (fixed a bug causing the component to crash on those OSes)
- Added a separate version of the BotDetect ASP component setup for 64-bit (x64) machines
- Added a CAPTCHA Reload button (allowing users to request a new CAPTCHA code if the current one is unreadable) to all of the example ASP projects; removed the BotDetect Refresh Demo ASP example project (since it is superseded by the Reload button functionality)
- Added Ajax CAPTCHA validation support to the LanapBotDetectHandler.asp file, and a new ASP example project demonstrating Ajax CAPTCHA validation (CAPTCHA Ajax Validation Example)
- LanapBotDetectHandler.asp general refactoring & cleanup: added support for multiple CAPTCHAs in the same ASP application, better variable names, more comments, better invalid request processing
- Fixed a bug in the CAPTCHA randomization ASP example, where reloading the CAPTCHA image without reloading the whole page bypasses the randomization
- Changed CAPTCHA validation code in all ASP example projects (to directly compare the user input to the Session state value), while keeping backwards compatibility with older code (comparing the code hashed values)
- General refactoring & cleanup of all ASP example CAPTCHA projects: improved usability by automatically lowercasing the CAPTCHA code input while typing, XHTML Transitional compliant code, CAPTCHA layout definitions moved to a separate CSS stylesheet, fixed some field name inconsistencies; moved all ASP example CAPTCHA project to separate subfolders in the installation folder
- Installation cleanup: removed the Component folder from the setup, all binaries are now kept exclusively in the Redistribute folder; the gdiplus.dll redistributable is now only installed for Windows 2000 users; replaced the outdated offline help with a link to the online documentation
[back to the top of the page]
v2.0.7 Released 2008-02-10
- Fixed a bug with audio CAPTCHA sometimes being cached in IE 6.0 or older
- Some cosmetic changes in existing CAPTCHA text styles
[back to the top of the page]
v2.0.6 Released 2007-10-21
- Fixed a bug in the "lanapbotdetecthandler.asp" file causing sound CAPTCHA problems in IE 6.0 or older when using SSL
- Added a new example demonstrating how to dynamically reload the CAPTCHA image
[back to the top of the page]
v2.0.5 Released 2007-07-09
- Fixed a bug in the ASP examples causing CAPTCHA validation not to work properly with cookies disabled
- Fixed a bug in algorithms 5 (Split) and 6 (Wave) causing the image generation to fail when image height is set to less than 10 px
- Minor ASP code performance tweaks & cleanup
[back to the top of the page]
v2.0.4 Released 2007-03-21
- Fixed a bug causing the CAPTCHA picture not to draw correctly on Windows 2000 servers
[back to the top of the page]
v2.0.3 Released 2007-03-08
- Fixed a bug with the default image format being set to GIF, despite the documentation saying it is JPEG
- Fixed some minor inconsistencies in algorithm names
- Updated all examples to use Javascript background sound playing, if the user's browser supports it
- Fixed a bug with the CAPTCHA image not changing after first load in Opera
- Added a new example demonstrating CAPTCHA randomization
- Moved ASP examples to a separate virtual folder, instead of wwwroot
- Fixed a bug with the examples not being removed when uninstalling
[back to the top of the page]
v2.0.2 Released 2006-06-25
- Fixed the last of the memory leaks (replaced all C++ pointers with boost shared pointers that release memory automatically)
[back to the top of the page]
v2.0.1 Released 2006-06-19
- Added 10 new algorithms (for a total of 50 different CAPTCHAs)
- Added sound CAPTCHA support
- Improved memory management (fixed most memory leaking problems)
- Some cosmetic changes in existing CAPTCHA types
- Added a new example demonstrating dynamic setting of all CAPTCHA properties
[back to the top of the page]
v1.0.4 Released 2005-08-11
- Added 21 new algorithms (for a total of 40 different CAPTCHAs)
- Some cosmetic changes in existing CAPTCHA types
[back to the top of the page]
v1.0.3 Released 2005-05-16
- Added 12 new algorithms (for a total of 19 different CAPTCHAs)
- Some cosmetic changes in existing CAPTCHA types
[back to the top of the page]
v1.0.2 Released 2005-03-03
- Added new CAPTCHA types (for a total of 8 different CAPTCHAs)
- Some cosmetic changes in existing CAPTCHA types
[back to the top of the page]
v1.0.1 Released 2005-02-25
[back to the top of the page]