Home

Conversation

$$17290
https://mastodon.xyz/users/Profpatsch posted on Mar 24, 2026 22:27

New post: Can we have a more “social” media?

https://profpatsch.de/essays/a-more-social-media

On advertising, the Fediverse, and what a more human social web could look like.

Special mentions: @smallcircles, @phnt, @happy-programming

#fediverse #activitypub #socialmedia

https://mastodon.xyz/users/Profpatsch/statuses/116286505445503914
Reply
$$17306
https://social.wake.st/users/liaizon posted on Mar 24, 2026 22:53
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286505445503914

@Profpatsch oh cool what did you build @happy-programming with?

https://social.wake.st/users/liaizon/statuses/116286607154109467
Reply
$$17307
https://mastodon.xyz/users/Profpatsch posted on Mar 24, 2026 22:54
In reply to: https://social.wake.st/users/liaizon/statuses/116286607154109467

@liaizon Right now it’s two golang files that do a half-assed job at implementing activitypub

https://mastodon.xyz/users/Profpatsch/statuses/116286610340089702
Reply
$$17309
https://social.wake.st/users/liaizon posted on Mar 24, 2026 23:00
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286610340089702

@Profpatsch ah very cool its custom! have you published the code? I would add it to a list of implementations I help manage at https://delightful.club

https://social.wake.st/users/liaizon/statuses/116286634393868183
Reply
$$17321
https://mastodon.xyz/users/Profpatsch posted on Mar 24, 2026 23:16
In reply to: https://social.wake.st/users/liaizon/statuses/116286634393868183

@liaizon yeah, it’s published, but currently I’d not feel comfortable being listed anywhere, the code is really rough and I haven’t really made sure it’s free of security issues

https://mastodon.xyz/users/Profpatsch/statuses/116286698350324046
Reply
$$17326
https://mastodon.xyz/users/Profpatsch posted on Mar 24, 2026 23:23
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286505445503914

ADVERTISERS ARE NOT OUR MASTERS
SCALING IS NOT OUR DOGMA

https://mastodon.xyz/users/Profpatsch/statuses/116286723304520650
Reply
$$17336
https://social.wake.st/users/liaizon posted on Mar 24, 2026 23:32
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286698350324046

@Profpatsch honestly seeing it running live and followable I would say you are better off then half the things listed on these lists

https://social.wake.st/users/liaizon/statuses/116286760100406146
Reply
$$17340
https://mastodon.xyz/users/Profpatsch posted on Mar 24, 2026 23:33
In reply to: https://social.wake.st/users/liaizon/statuses/116286760100406146

@liaizon Haha, that might be true. I did link it in the post, right now it lives at https://codeberg.org/Profpatsch/Profpatsch/src/branch/canon/users/Profpatsch/booster-bot and https://codeberg.org/Profpatsch/Profpatsch/src/branch/canon/users/Profpatsch/activitypub-go

https://mastodon.xyz/users/Profpatsch/statuses/116286764878652928
Reply
$$17646
https://mastodon.xyz/users/Profpatsch posted on Mar 25, 2026 14:19
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286764878652928

@liaizon fwiw I made & deployed some security improvements, the current security mechanisms are documented in https://codeberg.org/Profpatsch/Profpatsch/src/commit/249aa389a2023814b328af8fc795750fd28d995d/users/Profpatsch/activitypub-go/security.md

maybe @silverpill wants to take a look at whether this all sounds sensible?

https://mastodon.xyz/users/Profpatsch/statuses/116290248335721879
Reply
$$17647
https://mastodon.xyz/users/Profpatsch posted on Mar 25, 2026 14:20
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116290248335721879

@liaizon @silverpill I want to write a blog post on this at one point, but I don’t know if I missed anything or misunderstand things.

https://mastodon.xyz/users/Profpatsch/statuses/116290253739547374
Reply
$$17853
https://mitra.social/users/silverpill posted on Mar 25, 2026 19:39
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116290253739547374

@Profpatsch

2. Activity-Level Origin Checks
Same-origin is checked rather than exact equality so that servers with multiple actors can sign on behalf of any of their actors — a common legitimate pattern.

For incoming activities, consider checking exact equality. See FEP-fe34, section "Signatures":

In order to minimize damage in the event of a key compromise or insufficient validation, consumers MUST verify that the signing key has the same owner as the signed object. Consumers MUST also confirm the ownership of the key by verifying a reciprocal claim.

This is not strictly necessary, but would help if the origin server does poor job at validating user input.

3. Embedded Object Origin Checks
Owner origin: the object's owner (actor for Activity subtypes, attributedTo for Notes/Objects) must be same-origin as the signing actor. Anonymous objects (no owner field) are accepted.

In this case I also recommend checking owner ID equality, as a rule of thumb. Because origin servers implementing C2S API may fail to validate all embedded objects (which can be deeply nested).

Response body size limits

You may also need to limit the number of redirects and set a timeout. Some HTTP libraries have bad defaults.

By the way, I collect such recommendations in this guide: https://codeberg.org/ap-next/ap-next/src/branch/main/guide.md#network. Contributions are welcome!

@liaizon

https://mitra.social/objects/019d2682-860f-f6aa-c33c-e5b90bfded42
Reply
$$17923
https://mitra.social/users/silverpill posted on Mar 25, 2026 21:31
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116286505445503914

@Profpatsch @smallcircles @phnt

What hasn’t been considered is the ability of multiple people to speak with “one voice” yet.

Imageboards?

There was one that federated using ActivityPub: https://github.com/FChannel0/FChannel-Server

https://mitra.social/objects/019d26e8-bdf5-5257-0af5-ea8a84a8c994
Reply
$$17997
https://social.wake.st/users/liaizon posted on Mar 25, 2026 23:52
In reply to: https://mitra.social/objects/019d26e8-bdf5-5257-0af5-ea8a84a8c994

@silverpill @Profpatsch @smallcircles @phnt theres also https://oeee.cafe

https://social.wake.st/users/liaizon/statuses/116292501843982223
Reply
$$18161
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 11:30
In reply to: https://mitra.social/objects/019d26e8-bdf5-5257-0af5-ea8a84a8c994

@silverpill @smallcircles @phnt uh, I want to stay away from image boards as far as possible, they are the opposite of healthy communities. I have no clue how my post made you think “probably image boards” lol, did I not use the word “human” enough

https://mastodon.xyz/users/Profpatsch/statuses/116295246982469908
Reply
$$18185
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 12:57
In reply to: https://mitra.social/objects/019d2682-860f-f6aa-c33c-e5b90bfded42

@silverpill @liaizon I’d say we should rewrite these standards to have a “here’s how an ideal world would look like” and then “here’s what you might want to do for compatibility with existing implementations” approach, instead of that horrible MUST/MAY/SHOULD trainwreck.

e.g. ideal world: “host and scheme should be lower case”, compat work: “you can lowercase them before comparison, but do it like this: <instructions>”

https://mastodon.xyz/users/Profpatsch/statuses/116295587359176597
Reply
$$18186
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 12:58
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295587359176597

@silverpill @liaizon not dunking on your work ofc, but I think the “best practices” around writing standards are just not very good unfortunately

https://mastodon.xyz/users/Profpatsch/statuses/116295593732377402
Reply
$$18192
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 13:16
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295593732377402

@silverpill @liaizon Like, even just using urlparse() from different languages exposes us to implementation difference issues, so a simple split("#")[0] equality is *way* better than urlparse & field comparison for security reasons.

which means lowercasing is a bad-bad!

https://mastodon.xyz/users/Profpatsch/statuses/116295663086508820
Reply
$$18194
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 13:18
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295663086508820

@silverpill @liaizon check this :) https://blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf

https://mastodon.xyz/users/Profpatsch/statuses/116295671068190767
Reply
$$18199
https://social.wake.st/users/liaizon posted on Mar 26, 2026 13:35
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295671068190767

@Profpatsch @silverpill I like this presentation

https://social.wake.st/users/liaizon/statuses/116295735727872736
Reply
$$18213
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 14:20
In reply to: https://mitra.social/objects/019d2682-860f-f6aa-c33c-e5b90bfded42

@silverpill @liaizon What does this mean? “Follow redirects, but set a limit. Request must be re-signed after every redirect.”

do you mean I have to check the new http signature on every 30x response? I don’t believe that can work??

https://mastodon.xyz/users/Profpatsch/statuses/116295916338801699
Reply
$$18216
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 14:24
In reply to: https://mitra.social/objects/019d2682-860f-f6aa-c33c-e5b90bfded42

@silverpill @liaizon Another issue I noticed: “set a max request/response size” means that we are essentially forced to implement paging of outboxes both on client and server

https://mastodon.xyz/users/Profpatsch/statuses/116295929200084083
Reply
$$18221
https://mastodon.xyz/users/Profpatsch posted on Mar 26, 2026 14:31
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295929200084083

@silverpill @liaizon we should also definitely provide some actual values here, otherwise it’s pretty useless tbh …

https://mastodon.xyz/users/Profpatsch/statuses/116295956477778689
Reply
$$18343
https://mitra.social/users/silverpill posted on Mar 26, 2026 20:04
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295916338801699

@Profpatsch You need to create a new signature because the request target is changing. It is a part of a signature base, so the initial signature becomes invalid when the client follows a redirect.

@liaizon

https://mitra.social/objects/019d2bbf-4e34-02b9-d5b8-f60aa8a20aa1
Reply
$$18344
https://mitra.social/users/silverpill posted on Mar 26, 2026 20:11
In reply to: https://mastodon.xyz/users/Profpatsch/statuses/116295929200084083

@Profpatsch @liaizon The guide recommends limiting the response size, to prevent DoS.

I also found this in your SECURITY.md:

https://codeberg.org/Profpatsch/Profpatsch/src/commit/249aa389a2023814b328af8fc795750fd28d995d/users/Profpatsch/activitypub-go/security.md#response-body-size-limits

https://mitra.social/objects/019d2bc5-a5db-85e0-512e-5c68cbe6e6b4
Reply