GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

Embed Notice

HTML Code

Corresponding Notice

  1. Embed this notice
    Alyx (alyx@eldritch.cafe)'s status on Tuesday, 17-Sep-2024 17:40:34 JSTAlyxAlyx
    • Renaud Chaput
    • Aumetra Ⓐ :hex_non_binary: :good_boy:

    So, I fell down a rabbit hole. I learned that Mastodon can "DDoS" a server as thousands of instances fetch the metadata of a URL.

    Interestingly, this issue on Mastodon is also challenging Bluesky.

    The post that started all of this is: https://aumetra.xyz/posts/the-fedi-ddos-problem. Thanks to @aumetra for writing it! Give it a read first; it provides some context.

    My understanding (I'm stoopid, so don't quote me):

    On Mastodon's end, the issue remains unsolved. Their stance is essentially: trust your instance to fetch the correct metadata. Yes, this approach can cause a traffic surge, but there's no better solution at the moment. Relying on clients would exacerbate the issue.
    One potential solution could involve relays to centralize the fetching operation, offloading this task to a network of relays. This would centralize things a bit more while keeping options open: any instance could choose to use a relay or not. This would mitigate the issue, but not completely solve it.

    On the AT / Bluesky side, when you create a post (using their lexicon "app.bsky.feed.post"), you can pass any metadata you want (https://docs.bsky.app/docs/advanced-guides/posts#website-card-embeds). Their stance is that if someone does something misleading, it will be reported.
    Explanation of the “attack”: https://www.bentasker.co.uk/posts/blog/security/bluesky-posting-enables-misinformation-and-phishing-campaigns.html
    Related discussion: https://github.com/bluesky-social/atproto/discussions/1304

    At the end of the day, you have to trust someone anyway: your Mastodon instance, your Mastodon/Bluesky client, the author of the post, or a centralized endpoint serving the metadata for you.

    @renchap wrote about this, offering various ideas to solve this: https://gist.github.com/renchap/3ae0df45b7b4534f98a8055d91d52186

    If I can offer my humble opinion after gathering some information on the issue (again, I'm stoopid), the best approach is to rely on the website. It's the source of everything.

    First, having a cache in front of websites (like a CDN or reverse proxy) would prevent this issue entirely. But that's more of a workaround than a real solution. But like it's 2024... Come on.

    Second, signing the metadata is a great idea as well, and it would again rely on the website as the source of truth.

    However, another problem remains unsolved: what if someone maliciously publishes a post with tampered metadata? It would get federated as is.
    So having a signature on the website's end would solve both problems: you can check the signature, and if it doesn't match, then fetch the metadata yourself. If it matches, you can simply republish it without further verification, and so, not hammering the website.

    So my opinion is: trust the website first, then use a relay to balance the load, and finally rely on your own instance, just as it is today.

    Give me your thoughts! I fell into a rabbit hole with this post, and I love how complex the issue is to solve.

    In conversationabout 8 months ago from eldritch.cafepermalink

    Attachments


    1. Domain not in remote thumbnail source whitelist: aumetra.xyz
      The Fediverse has a DDoS problem | aumetra's Scribbles
      The Fediverse has a problem with accidentally DDoS-ing remote service. What can we do about it?
    2. No result found on File_thumbnail lookup.
      Context.my
    3. Domain not in remote thumbnail source whitelist: docs.bsky.app
      Posts | Bluesky
      This is an in-depth dive into how creating a post works on Bluesky. We'll use Python below, without a SDK, so you can see how it works behind the scenes.
    4. Domain not in remote thumbnail source whitelist: www.bentasker.co.uk
      Using BlueSky Features As Disinformation Tools
      from @bentasker
      Whilst working on automating posting into Bluesky I ran into an issue around link embed cards. BlueSky require that you manually define them, which means they're under the full control of the develope
    5. Domain not in remote thumbnail source whitelist: opengraph.githubassets.com
      Have the PDS fetch and populate Link Card (external embeds) information, instead of client · bluesky-social/atproto · Discussion #1304
      Is your feature request related to a problem? Please describe. Currently the API allows a developer to customise everything in a Link Card or app.bsky.embed.external embed. This is frustrating for ...
    6. Domain not in remote thumbnail source whitelist: github.githubassets.com
      Mastodon link previews draft.md
      from renchap
      GitHub Gist: instantly share code, notes, and snippets.
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.