<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in helper.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>f469e1e35809446d05cb365abf11ae98dcf3719c - Support multiple CAPTCHAs on a single page</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#f469e1e35809446d05cb365abf11ae98dcf3719c</link>
        <description>Support multiple CAPTCHAs on a single pageReplace ID selectors with classes to allow multiple CAPTCHA instanceson the same page. Modernize JavaScript to use vanilla JS methods andES6 syntax (const, arrow functions).fixes #98

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Thu, 22 Jan 2026 11:57:55 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>184a20604ec0bd2d0d0243ecbbed329e4674220e - cleanup styles, use SVG icon for audio</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#184a20604ec0bd2d0d0243ecbbed329e4674220e</link>
        <description>cleanup styles, use SVG icon for audio

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 12:59:10 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>5697ecf8bf298450d6722c7b7298c8ff44eda91e - adjust tests and fix file cookie handling</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#5697ecf8bf298450d6722c7b7298c8ff44eda91e</link>
        <description>adjust tests and fix file cookie handling

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 11:59:44 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>1cd9cde7fa3af3699251c409d44d1efc6f383e17 - more cleanup for the html generation</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#1cd9cde7fa3af3699251c409d44d1efc6f383e17</link>
        <description>more cleanup for the html generation

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 10:38:24 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>c6d794b3c9d4f058a62b1ade70316fe9384e4827 - move file cookies to class</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#c6d794b3c9d4f058a62b1ade70316fe9384e4827</link>
        <description>move file cookies to class

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 10:11:40 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>09b1e97e3cb9f2c4be8ca729baa9d49a3ba58ba1 - first go at cleaning up the code</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#09b1e97e3cb9f2c4be8ca729baa9d49a3ba58ba1</link>
        <description>first go at cleaning up the code

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 09:45:17 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>bb63fb25f62ac75462aae93495dbd7e85d8bd5f8 - Fix utf8_strtolower() is deprecated warning (#141)</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#bb63fb25f62ac75462aae93495dbd7e85d8bd5f8</link>
        <description>Fix utf8_strtolower() is deprecated warning (#141)Use  \dokuwiki\Utf8\PhpString::strtolower() instead

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 06 Dec 2023 08:35:36 +0000</pubDate>
        <dc:creator>Daniel Dias Rodrigues &lt;danieldiasr@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>64382f292cb5c1c7154e8fd095ef7180282ebf84 - use $INPUT for access to $_SERVER. fixes #131</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#64382f292cb5c1c7154e8fd095ef7180282ebf84</link>
        <description>use $INPUT for access to $_SERVER. fixes #131

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Sat, 27 Aug 2022 16:24:14 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>63609b6ea4366bd9c8e1bff48a61b5e5cd514a21 - fix audio captcha. closes #115</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#63609b6ea4366bd9c8e1bff48a61b5e5cd514a21</link>
        <description>fix audio captcha. closes #115It seems browsers pass different accept-encoding headers now for theaudio request, breaking auth_browseruid()

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Thu, 04 Aug 2022 19:59:00 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>969b14c4e3ba4be207f4542079c3a4d093268325 - added bruteforce protection on login</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#969b14c4e3ba4be207f4542079c3a4d093268325</link>
        <description>added bruteforce protection on loginThe new default for protecting the login now takes failed logins fromthe originating IP into account.

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Tue, 11 Jan 2022 12:10:20 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>186227361d0efe9f0e20bd52c87dfbf939efb53a - auto reformat code</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#186227361d0efe9f0e20bd52c87dfbf939efb53a</link>
        <description>auto reformat code

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Tue, 11 Jan 2022 10:53:15 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>39bbdaefefb2b581b10c9e3e697e969de944ba7f - fix deprecated use of curly braces</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#39bbdaefefb2b581b10c9e3e697e969de944ba7f</link>
        <description>fix deprecated use of curly braces

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Thu, 22 Jul 2021 20:38:01 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>9efb703b91855feb8790f3eaa0690fd80af35b0f - In the registration form, I&apos;ve picked &quot;question&quot; and added HTML to the question, to link to the answer (because the question is kind of arcane). However, clicking the link does nothing. Inspecting the page, I found JS code that tries to extract the link to the audio snipped from an anchor tag, and then attaches a hander to the anchor that starts playing the audio and stop event processing. About line 16 in script.js</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#9efb703b91855feb8790f3eaa0690fd80af35b0f</link>
        <description>In the registration form, I&apos;ve picked &quot;question&quot; and added HTML to the question, to link to the answer (because the question is kind of arcane). However, clicking the link does nothing. Inspecting the page, I found JS code that tries to extract the link to the audio snipped from an anchor tag, and then attaches a hander to the anchor that starts playing the audio and stop event processing. About line 16 in script.jsThis change makes the JS code more specific.

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Sat, 27 Feb 2021 11:36:06 +0000</pubDate>
        <dc:creator>Stefan Bethke &lt;stb@lassitu.de&gt;</dc:creator>
    </item>
<item>
        <title>9bc1fab22ff7de7b4bf7cb2f1335b0956a4a3bfa - Removed &quot;?&quot; from math function in helper.php:348</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#9bc1fab22ff7de7b4bf7cb2f1335b0956a4a3bfa</link>
        <description>Removed &quot;?&quot; from math function in helper.php:348

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Tue, 05 Dec 2017 19:00:45 +0000</pubDate>
        <dc:creator>Apostolos P. Tsompanopoulos &lt;monotropos@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>08f248e40c0e155880defbf4b95d145cf9080d3c - added new mode SVG</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#08f248e40c0e155880defbf4b95d145cf9080d3c</link>
        <description>added new mode SVGThis mode generates an SVG image an inlines it. This is much easier toread than the obfuscated image but should still be relatively hard formost spammers (until they start handling inline SVGs).

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 01 Feb 2017 21:20:55 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>cde3ece1b2b75d735e60463369185c6646617354 - clean up old captcha cookies</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#cde3ece1b2b75d735e60463369185c6646617354</link>
        <description>clean up old captcha cookiesOld cookies are now cleared once per day.

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 01 Feb 2017 19:12:52 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>a285df67bba92c0e515b79f89013d7edbd478251 - implement &quot;cookies&quot; against replay attacks</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#a285df67bba92c0e515b79f89013d7edbd478251</link>
        <description>implement &quot;cookies&quot; against replay attacksThe CAPTCHA plugin tried to be stateless. No cookie related informationwas stored on the server (eg. in the session). Instead encryption ofavailable information was used to ensure captcha codes couldn&apos;t befaked. To avoid replay attacks the plugin relied on the last change dateof the current page. When a captcha was filled in correctly a page editwas allowed and the next captcha would use different encryption. Howeverthis does not work where the captcha is used independently from a pageedit. Eg. for logins or comments.To fix this some data has to be stored server side. Most captchas simplystore the code in the session of the user. This has two disadvantages:1) only one code can be used, which makes having multiple tabs with   editing sessions a pain2) the session must be open for writing when the captcha is displayed   and checkedThis change implements a different approach. For each displayed captchaa &quot;cookie&quot; (a 0 byte file) is stored in the tmp directory. When acaptcha is checked, the cookie is removed again. This way each captchacan only be used once.Cleaning up the tmp directory is still missing and comes in a secondcommit.

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Wed, 01 Feb 2017 18:15:29 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>3ee3748190499bf4e0f6396feb45c85486e47a75 - make function protected</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#3ee3748190499bf4e0f6396feb45c85486e47a75</link>
        <description>make function protectedhelps testability

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Fri, 29 May 2015 10:58:44 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>14e271eb5dd7c17c0afb37ba96d4c516be5b16a4 - Don&apos;t skip tests when input is empty (guards against timing attacks)</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#14e271eb5dd7c17c0afb37ba96d4c516be5b16a4</link>
        <description>Don&apos;t skip tests when input is empty (guards against timing attacks)

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Tue, 26 May 2015 07:13:00 +0000</pubDate>
        <dc:creator>Patrick Brown &lt;ptbrown@whoopdedo.org&gt;</dc:creator>
    </item>
<item>
        <title>09870f9957f41d4b115b3b65d985a710498d7596 - Always validate string before decrypting</title>
        <link>http://127.0.0.1:8080/history/plugin/captcha/helper.php#09870f9957f41d4b115b3b65d985a710498d7596</link>
        <description>Always validate string before decrypting

            List of files:
            /plugin/captcha/helper.php</description>
        <pubDate>Tue, 26 May 2015 07:02:26 +0000</pubDate>
        <dc:creator>Patrick Brown &lt;ptbrown@whoopdedo.org&gt;</dc:creator>
    </item>
</channel>
</rss>
