this post was submitted on 20 Oct 2026
570 points (98.5% liked)

Fediverse

44428 readers
1051 users here now

A community to talk about the Fediverse and all it's related services using ActivityPub (Mastodon, Lemmy, Mbin, etc).

If you wanted to get help with moderating your own community then head over to !moderators@lemmy.world!

Rules

Learn more at these websites: Join The Fediverse Wiki, Fediverse.info, Wikipedia Page, The Federation Info (Stats), FediDB (Stats), Sub Rehab (Reddit Migration)

founded 3 years ago
MODERATORS
 

I shared a link from NPR Tiny Desk but there was no image preview or video embed. After investigating this I learned that when you do that, each instance picks up the link and individually retrieves the link preview nearly simultaneously. For gargantuan sites like YT or Reddit, this is a trivial amount of traffic and not a problem, but for smaller sites like NPR this results in a sort of botnet DDOS attack on the site's servers. More here. Another example here . For that reason, NPR has blocked Fediverse servers like Mastodon.

I have experienced this on my personal server as well (DDOS), but at the time didn't know why, exactly.

This isn't the end of the world, but certainly is not great and hurts engagement with the content. Is there a solution for this? Perhaps using some sort of webtorrent service like PeerTube where they just fetch the information from another fediverse server instead of the source server? Maybe fetching embeds client-side? At least that would stagger the requests.

you are viewing a single comment's thread
view the rest of the comments
[–] wjs018@piefed.wjs018.xyz 196 points 22 hours ago (6 children)

There are two proposed solutions I have seen. I do not claim that this is exhaustive, just only limited to the proposals that I have stumbled across.

FASP - Fediverse Auxiliary Service Provider

The idea that mastodon has is to have a third-party service that does something like generate a link preview once and then share that to fediverse instances that need it. They have a whole spec they wrote up about these kinds of services that can be run to help out fediverse instances with different things like this, search, or discoverability. They call these FASPs - the repo with the spec is here.

I don't yet know of any FASP that is live and running, so it is kind of a paper spec at the moment. I don't do too much on the microblogging side of the fediverse though, so I very well could be wrong.

Federate link metadata and the post at the same time

This comes from an issue on PieFed's repo. It is basically just an idea at this point, but it is a pretty basic one; have the originating instance fetch the link preview information and simply federate it out alongside the post itself.

[–] jaybone@lemmy.zip 122 points 22 hours ago (2 children)

That second solution is what I thought of as doing as I read this. It doesn’t rely on a third party service being up. And that instance has to do that work anyway. So why not just share the results with others?

[–] khannie@lemmy.world 9 points 18 hours ago (2 children)

It was my first thought too but there are downsides to it. Trust is a small one given the nature of the system but compute and bandwidth costs could be an issue also, especially for larger instances.

The first solution is more fragile but could be CDN'd and those are cheap.

[–] Kangae_Hishiryo@scribe.disroot.org 4 points 8 hours ago (1 children)

WebTorrent kind of solution like PeerTube is the best, because it's highly scalable yet not that resource-intensive, because everyone (even users) provides their bit; also, as it's entirely P2P, it acts sort like a distributed and decentralized CDN, so it's snappier for everyone because it's more likely that you have a peer near to you like that.

[–] khannie@lemmy.world 5 points 6 hours ago (1 children)

Absolutely LOVE this idea but I feel like a solid implementation would be a pain in the fanny (and it also requires other peers to be online). I dip in and out over the day myself but I don't know what others use case is.

Also it is far less trustworthy and harder to block bad actors (V's removing a known bad actor from a relatively small peer group).

Idk, the part of uptime of peers is solved precisely by the fact that not every peer will be connected at the same moments that every other peer. If I'm connected at 10pm, it's highly likely that there will be at least another single peer at that hour that has what I'm pulling.

As for bad actors, that's something that at the end of the day is unavoidable. Though with some automated systems could be possible to make it more hard for them, but it's not that different from a centralised approach, and thus is better because is computationally more efficient.

[–] Ghoelian@piefed.social 6 points 15 hours ago

I don't think compute resources should be an issue, if anything it saves other instances resources.

As far as I understand, right now, all instances are fetching this data individually, so they all have the same compute load from this. Doing it on one and sending it along with federation should keep resource useage pretty much the same on the originating instance, and less for all others.

This would still increase bandwidth of course, but at least with all VPS providers I have used, bandwith is pretty cheap.

[–] yamper@piefed.social 22 points 22 hours ago (3 children)

how would you know the results havent been tampered with?

[–] 4am@lemmy.zip 115 points 21 hours ago (1 children)

The same way you know the rest of the data hasn’t been tampered with - you don’t. And when you find untrustworthy instances, you defederate from them.

[–] SorteKanin@feddit.dk 15 points 15 hours ago (1 children)

That's not true, you know the data hasn't been tampered with because of HTTP signatures. The fediverse isn't just "yolo, just trust me bro". There are some parts that are a bit more towards that side (particularly with groups on Lemmy) but I don't think this should be.

[–] Natanael@infosec.pub 7 points 9 hours ago* (last edited 9 hours ago)

HTTP signatures are not a default feature, the baseline is ECDHE key exchange with forward secrecy and deniability. Headers are not typically signed.

There isn't even an official standard for redistributable signed page metadata. There's just prototypes. I absolutely hope one of those prototypes becomes official, but we're not there yet.

The activitypub fediverse is literally very extremely Yolo trust me bro, it works because you can see the originating server with everything and misbehaving ones gets banned.

[–] jaybone@lemmy.zip 44 points 21 hours ago

I’m trusting the user who submitted the link and/or the instance that user is on. I’m doing that anyway by clicking on their link right?

[–] rako@tarte.nuage-libre.fr 4 points 16 hours ago

So I receive a post from someone presumably with some comment, along with a preview of a link, and I'm supposed to trust one but not the other ?

[–] tuckerm@feddit.online 71 points 21 hours ago* (last edited 21 hours ago) (2 children)

I'm a fan of the second one. My thought is, if you trust a server enough to accept messages from it, then you should also trust it enough to let it scrape the page title, article image, etc. for you, too.

[–] shrek_is_love@lemmy.ml 15 points 20 hours ago

Seems like a no-brainer! They could even leave the old behavior as an option for instance admins to re-enable, but if they default it to not DDoSing, that would make a huge difference.

[–] timochka@lemmy.zip 1 points 14 hours ago (2 children)

The great thing about this if you run a server, as soon as a user posts a link to some kiddy porn, you not only download it automatically, you distribute it as well. Go-go-gadget-jailtime.

(Actually already a problem with Mastodon federation of image posts, and why I would strongly encourage against anyone in a strict liability jurisdiction from running their own Mastodon server tbh.)

[–] tuckerm@feddit.online 3 points 6 hours ago* (last edited 6 hours ago)

This is no different from how it is already, though. If a user posts a CSAM link, your server immediately visits that link to scrape it, and you suddenly have that content on your server.

Of course, if you have a blocklist of forbidden sites, then your server will know not to scrape that site. And the same thing applies if we allow servers to send pre-scraped metadata. If the incoming message is for a blocked URL, just drop the message and don't save any part of it.

The only new threat here is for a malicious server operator to modify outgoing messages to include CSAM metadata on a harmless link. However, that possibility already exists with any other content posted on the fediverse. If a malicious server is modifying its own outgoing messages, the only fix is to defederate from it.

Allowing servers to forward pre-scraped metadata to other servers does not introduce any new threats that do not already exist.

[–] Wildmimic@anarchist.nexus 6 points 12 hours ago (1 children)

There's no reason to believe that this mechanism doesn't check for CSAM (I am also pretty stumped that this is actually a problem with Mastodon according to your comment?) . Lemmy had a phase where messed up stuff got federated, which led to @db0@lemmy.dbzer0.com's implementation of an anti-CSAM tool: https://github.com/db0/fedi-safety, which is based on the CSAM detection tool for the AI Horde: https://dbzer0.com/blog/ai-powered-anti-csam-filter-for-stable-diffusion/ - it's probably not so hard to adapt for Mastodon too.

[–] timochka@lemmy.zip 0 points 11 hours ago

If you want to trust a hypothetical "detects CSAM honest" feature with something like this, well, you go ahead.

I mean; just imagine for one moment that lemmy.ml actually is the hotbed of revolutionaries that is going to usher in the Glorious Revolution that it thinks it is; it starts actually moving mountains, politically speaking.

And, some bright spark has implemented the "automatically download and distribute content from unverified sources, protected only by the open-source Kiddy-Porno-Matic Verifier v0.1.23" feature.

If I were Peter Thiel it would take me 5 minutes to start posting links that caused lemmy.ml's servers to start downloading and then distributing kiddy porn, about 20 minutes to get some tame journalists parked outside the owners' houses and lemmy.ml's datacentre, and another 10 minutes to call up the friendly neighbourhood goons in wherever they are located for the photogenic armed raid. And once the "revolutionary leaders in court for making and distributing child pornography" headlines had finished writing themselves, I wouldn't even worry about whether the court would accept the "but we ran the Kiddy-Porno-Matic Verifier v0.1.23!" defence, because their lives would be over already. No smoke without fire, after all...

Nah. "Automatically download and distribute content" features need rather more thinking through than historically Mastodon et al have given them. They certainly don't need to create any more.

(And to be clear - maybe Mastodon has fixed some of their underlying problems - I ran an instance a few years ago, and the constant whack-a-mole of blocking actual-Nazi and actual-Pedo instances, and the risk that it could just go ahead and download something to my servers because a user followed the wrong person had me shutting it down not long after. As I say, maybe they fixed that - but this mooted feature would be bringing back the same problem.)

Of course, maybe Lemmy.ml is (a) hosted in a jurisdiction where they don't give a fuck, and (b) can afford to defend themselves. But this kind of feature will actively work against people who otherwise might host a small instance, and I thought that is what we wanted, not just a few massive instances that can afford to lawyer up.

All, I should say, IMHO of course.

[–] warmaster@lemmy.world 4 points 13 hours ago

It could have been FAPS, what a missed opportunity.

[–] panos@catodon.rocks 1 points 12 hours ago (1 children)

But what happens when a link target changes? For example, I've seen news articles change as the author gets new information. Might be an edge case, but a solution like this would always show the preview at the time of the initial post.

[–] HubertManne@piefed.social 1 points 8 hours ago (1 children)

is this a bad thing though. like if im the poster I don't necessarily want the content to change compared to what I saw and was excited about so came to tell people about.

[–] panos@catodon.rocks 1 points 8 hours ago

yeah, you're not wrong...

[–] rimu@piefed.social 2 points 16 hours ago

Really the only metadata we are interested in is the thumbnail image url. Afaik PieFed already retrieves this from the og:image meta tag before sending the URL along with the other post content to the instance hosting the community.

Another idea - those meta tags are also retrieved during post composition in an ajax call, in order to prepopulate the title and body fields so the image url could be stashed in a hidden field at that point...