{"version":"https://jsonfeed.org/version/1.1","title":"Vic Demuzere - Rant","home_page_url":"https://vic.demuzere.be/articles/tags/rant/","feed_url":"https://vic.demuzere.be/articles/tags/rant/feed.json","description":"Blog posts tagged Rant by Vic Demuzere","language":"en","items":[{"id":"https://vic.demuzere.be/articles/bots-crawlers-and-geoblocks/","content_html":"<p>The last few years, web traffic from bots has increased rapidly.\nSome sources<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup> claim that automated activity now accounts for over half of all web traffic.\nThis is even more pronounced on small websites like mine, as I don't receive many human visitors.</p>\n<p>The table below shows traffic on this website for the last few days:</p>\n<table>\n<thead>\n<tr>\n<th align=\"center\"></th>\n<th>Path</th>\n<th align=\"right\">Hits</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td align=\"center\">1</td>\n<td>/wp-login.php</td>\n<td align=\"right\">2751</td>\n</tr>\n<tr>\n<td align=\"center\">2</td>\n<td>/wp-admin/index.php</td>\n<td align=\"right\">2707</td>\n</tr>\n<tr>\n<td align=\"center\">3</td>\n<td>/wp-admin/edit.php</td>\n<td align=\"right\">2354</td>\n</tr>\n<tr>\n<td align=\"center\">4</td>\n<td>/wp-admin/profile.php</td>\n<td align=\"right\">2353</td>\n</tr>\n<tr>\n<td align=\"center\">5</td>\n<td>/wp-admin/plugins.php</td>\n<td align=\"right\">2351</td>\n</tr>\n<tr>\n<td align=\"center\">6</td>\n<td>/robots.txt</td>\n<td align=\"right\">1131</td>\n</tr>\n<tr>\n<td align=\"center\">7</td>\n<td>/</td>\n<td align=\"right\">994</td>\n</tr>\n<tr>\n<td align=\"center\">8</td>\n<td>/articles/feed.rss</td>\n<td align=\"right\">989</td>\n</tr>\n<tr>\n<td align=\"center\">9</td>\n<td>/articles/how-i-almost-lost-my-backups/</td>\n<td align=\"right\">314</td>\n</tr>\n<tr>\n<td align=\"center\">10</td>\n<td>/wp-content/themes/vic/style.css</td>\n<td align=\"right\">299</td>\n</tr>\n</tbody>\n</table>\n<p>This clearly shows two things:</p>\n<ul>\n<li>The first useful page for a real visitor is in sixth place<sup class=\"footnote-ref\"><a href=\"#fn-2\" id=\"fnref-2\" data-footnote-ref>2</a></sup>.</li>\n<li>My stylesheet has a low number of hits compared to the frontpage and my most recently published article.\nOne would expect each unique visitor to download the stylesheet at least once.</li>\n</ul>\n<p>That is to say, my own statistics show that I'm mainly serving our robot overlords.</p>\n<p>The situation is worse on other kinds of web apps, like my <a href=\"https://forgejo.org/\" title=\"Forgejo is a self-hosted lightweight software forge.\">Forgejo</a> instance.\nIt's a single-user instance, and most projects are private, but I do publish a bunch of open-source projects there.\nRecent bot traffic on applications like these is causing significant load on my server.</p>\n<h2 id=\"keeping-the-bots-out\">Keeping the bots out<a href=\"#keeping-the-bots-out\" aria-label=\"Link to heading 'Keeping the bots out'\" data-heading-content=\"Keeping the bots out\" class=\"anchor\"></a></h2>\n<p>Previously, the majority of crawlers were relatively decent.\nThey would crawl your website slowly, making sure not to cause too much load.\nTheir main purpose was serving search results to people looking for the content you publish.\nBringing down your website would only result in their own users landing on error pages.</p>\n<p>The recent <a href=\"https://en.wikipedia.org/wiki/Generative_AI\" title=\"Generative AI on Wikipedia\">Generative AI</a> (GenAI) craze changed this completely.\nMultiple companies are now racing to collect as much data as possible.\nThey no longer care what happens with the websites they're crawling.\nOnce they have collected enough content, their GenAI agents provide users with answers directly.\nThe source website is treated as irrelevant.\nObviously, as a website owner, I do not want these thankless robots on my property<sup class=\"footnote-ref\"><a href=\"#fn-3\" id=\"fnref-3\" data-footnote-ref>3</a></sup>!</p>\n<p>So I went through the standard ways of blocking them:</p>\n<ol>\n<li>Asking nicely in <a href=\"https://www.robotstxt.org/\" title=\"The Web Robots Pages\"><code>robots.txt</code></a>.</li>\n<li>Denying requests based on the <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/User-Agent\" title=\"User-Agent HTTP header on Mozilla Developer Network\">User-Agent</a> header.</li>\n<li>Blocking IP ranges from known data centers and cloud providers.</li>\n</ol>\n<p>None of these methods work.</p>\n<p>GenAI companies frequently ignore <code>robots.txt</code> files.\nThey also usually disguise themselves as normal browsers instead of identifying as crawlers.\nMore recently, I've also noticed them increasingly using consumer IP space.\nCombined with rapidly changing addresses, this makes it impossible to block them by IP address alone.</p>\n<p>There are some promising new tools like <a href=\"https://anubis.techaro.lol/\" title=\"Anubis\">Anubis</a> that work<sup class=\"footnote-ref\"><a href=\"#fn-4\" id=\"fnref-4\" data-footnote-ref>4</a></sup>, for now.</p>\n<h2 id=\"giving-up\">Giving up<a href=\"#giving-up\" aria-label=\"Link to heading 'Giving up'\" data-heading-content=\"Giving up\" class=\"anchor\"></a></h2>\n<p>Making sure websites stay online is part of my job.\nI don't want to have to go through the same hassle for my own web apps when I get home.\nI'm tired, and the few things I'm hosting just aren't worth it.</p>\n<p>So, I decided to take two different approaches:</p>\n<ol>\n<li>\n<p>Websites that are <strong>meant to be public</strong>, like the one you're reading now.\nI've always optimized these for high traffic, and will continue to do so.\nThese are built to withstand much more than the AI crawlers I'm currently seeing.\n<strong>I'm no longer blocking any bots on public websites.</strong></p>\n</li>\n<li>\n<p>Websites (and web apps) that are <strong>primarily meant for myself</strong>.\nThese are <strong>now geoblocked</strong> and only accept traffic from Belgium.\nAs these are mainly open source applications that I don't maintain myself, they are harder to optimize.\nThis includes my <a href=\"https://forgejo.org/\" title=\"Forgejo is a self-hosted lightweight software forge.\">Forgejo</a> instance.\nIt's sad that part of my open source code disappears behind a firewall.\nI hope to open it up again once AI companies start behaving more responsibly.</p>\n</li>\n</ol>\n<p>My geoblock page contains contact information.\nSo if people <em>really want to go through the hassle</em> of requesting access (which I very much doubt), they can be allowed in.</p>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>Every article I've found claiming this reads like marketing material for a web security firm.\nFor that reason, I decided not to link to any of them.\nBased on my own traffic stats though, I don't doubt their numbers. <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"1\" aria-label=\"Back to reference 1\">↩</a></p>\n</li>\n<li id=\"fn-2\">\n<p>I do read robots.txt on some sites I visit.\nIt's a treasure trove of information about the website you're visiting.\nBut that's probably not normal human behaviour. <a href=\"#fnref-2\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"2\" aria-label=\"Back to reference 2\">↩</a></p>\n</li>\n<li id=\"fn-3\">\n<p>I don't really mind AI crawlers, as long as they behave.\nThey usually don't. <a href=\"#fnref-3\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"3\" aria-label=\"Back to reference 3\">↩</a></p>\n</li>\n<li id=\"fn-4\">\n<p>Anubis is great!\nEspecially since it lets through the bots that clearly identify as a bot. <a href=\"#fnref-4\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"4\" aria-label=\"Back to reference 4\">↩</a></p>\n</li>\n</ol>\n</section>\n<div class=\"footer\"><hr><p>Thanks for subscribing to my feed!</p><p>Feel free to e-mail comments or corrections to <a href=\"mailto:vic@demuzere.be?subject=RE%3A%20Bots%20are%20dominating%20the%20web\">vic@demuzere.be</a>.</p></div>","url":"https://vic.demuzere.be/articles/bots-crawlers-and-geoblocks/","date_published":"2026-05-14T13:41:51Z","date_modified":"2026-05-14T13:41:51Z","language":"en"},{"id":"https://vic.demuzere.be/articles/how-authy-cripples-my-2fa-experience/","content_html":"<p>Security on web services has improved a lot lately. Most of them have switched to being available over HTTPS only, use decent hashing and encryption for user credentials and <a href=\"https://twofactorauth.org/\" title=\"Services supporting two-factor authenication\">support two-factor authentication</a> by now. <a href=\"https://www.authy.com/\" title=\"Authy\">Authy</a> provides an easy to use two-factor solution for organizations. However, this seems to be a bit of a poisoned gift.</p>\n<h2 id=\"why-do-we-need-two-factor-authentication\">Why do we need two-factor authentication?<a href=\"#why-do-we-need-two-factor-authentication\" aria-label=\"Link to heading 'Why do we need two-factor authentication?'\" data-heading-content=\"Why do we need two-factor authentication?\" class=\"anchor\"></a></h2>\n<p>Online authentication used to rely on remembering a password. This is by far the easiest solution, but it has a few drawbacks. People are bad at remembering things, especially if they don't use them every day. This results in passwords being written down and attached to computer screens and keyboards. Even worse is that most people <strong>use the same password for every site they visit</strong>.</p>\n<p>Using the same password on multiple sites becomes a problem when one of them leaks user credentials. Trying out the leaked username/e-mail and password combinations may give access to a lot of other sites, creating an avalanche effect.</p>\n<p>Two-factor authentication attempts to solve this problem by <em>combining the password with a physical item</em>. A mobile device or hardware token generates an access code, usable for a limited time only. This means that someone who knows your password is still unable to access your account. Great!</p>\n<p><img src=\"https://vic.demuzere.be/assets/articles/images/TRYl3DRF0rsyvqqnV0drAUMoq12Qb1Mn.jpg\" alt=\"A hardware two-factor authentication token\" /></p>\n<h2 id=\"how-does-two-factor-authentication-work\">How does two-factor authentication work?<a href=\"#how-does-two-factor-authentication-work\" aria-label=\"Link to heading 'How does two-factor authentication work?'\" data-heading-content=\"How does two-factor authentication work?\" class=\"anchor\"></a></h2>\n<p>An authenticator app generates an access code based on a secret and the current time. This code changes every 30 seconds, but can usually be used for about 5 minutes. Every site gives you a unique secret, and thus you can't use a single code for multiple sites.</p>\n<p>Notice that I talk about &quot;<em>an authenticator app</em>&quot; and not a specific application? These services support the <a href=\"http://tools.ietf.org/html/rfc4226\" title=\"HOTP RFC\">TOTP</a> or <a href=\"http://tools.ietf.org/html/rfc6238\" title=\"TOPT RFC\">HOTP</a> standard. There are a lot of applications that allow you to generate these access codes. The most well-known is the <a href=\"https://en.wikipedia.org/wiki/Google_Authenticator\" title=\"Google Authenticator\">Google Authenticator</a>, but there are many more! On every platform and for every device. Even if you're using a 10 year old smartphone, chances are you'll find a suitable two-factor application.</p>\n<h2 id=\"and-then-there-was-authy\">And then there was Authy<a href=\"#and-then-there-was-authy\" aria-label=\"Link to heading 'And then there was Authy'\" data-heading-content=\"And then there was Authy\" class=\"anchor\"></a></h2>\n<p>Authy provides a solution for websites that makes it easy to implement two-factor authentication. This is a good thing as it allows more organisations to use 2FA. Their own authenticator app provides a few extra features too. Unfortunately, in order to do this, they decided to <em>take an open standard and completely break it</em>. They <strong>deliberately prevent</strong> you from using any other app than their own. As usual, this is a one way situation: you can import other accounts to authy, but not the other way around.</p>\n<p>When asked about other apps, their customer support replied:</p>\n<blockquote>\n<p>Are you asking about using Authy-powered tokens with third-party apps? If so, we do not support that feature, but many of our clients support authentication via SMS or phone calls.</p>\n</blockquote>\n<p>Sure, their own app has a few amazing features. It allows you to backup an encrypted copy of your secret keys to the cloud, for example. But is that worth it? What if you're using a platform that doesn't have an Authy app? As more organisations switch to Authy, <strong>they are effectively ending the freedom of choice</strong> when it comes to authenticator apps.</p>\n<p>Is this a bad thing? Up to you to decide.</p>\n<div class=\"footer\"><hr><p>Thanks for subscribing to my feed!</p><p>Feel free to e-mail comments or corrections to <a href=\"mailto:vic@demuzere.be?subject=RE%3A%20How%20Authy%20cripples%20my%202FA%20experience\">vic@demuzere.be</a>.</p></div>","url":"https://vic.demuzere.be/articles/how-authy-cripples-my-2fa-experience/","date_published":"2015-03-11T17:46:16Z","date_modified":"2026-05-13T17:23:33Z","language":"en"}]}