# This file documents the revision history for Perl extension Catalyst::Plugin::CSRFToken.
1.100 - 2026-08-06
- UPGRADE WARNING: the on-the-wire token format has changed and tokens
issued by 1.001 or earlier are rejected. Any page already rendered by
the old version stops validating the moment this is deployed, so users
part way through a form will get a 403 and have to reload. Drain or
expire sessions as part of the upgrade if that matters to you.
- Security: mask each CSRF token with fresh randomness before returning
it to the caller, preventing a stable token representation from being
recovered through a BREACH compression oracle. Reported by dcook on
irc.perl.org; the same issue Mojolicious addressed in GHSA-cf46-h6jw-mj3r.
- Stop logging submitted and expected CSRF token values in debug mode.
- Documentation fix: the overridable failure hook is
'delegate_failed_csrf_token_check'. Earlier docs named a
'csrf_failure_response' method that never existed, so overrides written
against the documented name were silently ignored.
- Documentation fix: the attribute that skips automatic checks is
'DisableCSRF', not 'NoCSRF' as the prose claimed.
- Dropped the unused Bytes::Random::Secure prerequisite and raised the
MIME::Base64 floor to 3.11, the first release with encode_base64url.
1.001 - 2025-03-09
- Back compatibility warning: The previous version has been buggy
for quite a while due to errors I made in version 0.001 and I've
tried to fix these over the past few years with only part success.
Additionally some of its comparison code is not up to modern
cryptographic standards. As a result the guts are now substantially changed.
I did my best to be compatible in terms of the public API. This works
for all my existing code but please shout out if you run into issues.
FWIW I believe you should upgrade as I consider previous versions
insecure and I will be removing them from CPAN in the future. Sorry for
the trouble.
0.008 - 2024-10-27
- Force session id to exist if one doesn't already.
0.007 - 2023-05-15
- fixed bad metadata in previous release
0.006 - 2023-05-15
- support looking in body_data for the token when the POST body
isn't classic HTML form data.
0.005 - 2023-05-14
- new ease of use methods
0.004 - 2023-05-14
- changed when we perform the automatic token validation to better allow
for one to override how error messages are sent to the browser
- Changed the default error message to specify that the error is a bad token
and sets the code to 403: forbidden.
0.003 - 2022-05-10
- Added some extra utility methods and overall better docs
- Added ability to create single use tokens.
0.002 - 2002-05-09
- Added missing dependency to dist.ini
0.001 - 2022-05-07
- Initial release
- For Mom on Mother's Day