I noticed that there were some accounts that were hijacked by the instance owners. All the posts from that user were then edited to say what happened.

This kind of surprised me, I figured instances could delete posts, but not edit them. So how much control do they have?

I assume they can’t see my password (hopefully). Can they post in my name? Do they have all the access to my posts to foreign instances that they do over local posts?

Edit: thanks for all the responses everyone! I’ve wanted my own instance for a while, but maybe I’ll get on it now

  • SalamanderA
    link
    fedilink
    arrow-up
    43
    ·
    edit-2
    11 months ago
    • Password hashing occurs server-side. Even without removing the hashing step an admin can intercept the plaintext password during login. Use unique safe passwords.

    • An admin can intercept the jwt authentication cookie and use any account that lives in the instance.

    • Private messages are stored as plaintext in the database

    • Admins can see who upvotes/downvotes what

    • These are not things that are unique to Lemmy. This is common.

    • To avoid having to trust your admin, run an instance.

    • Ziggurat@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      7
      ·
      11 months ago

      Quick note,

      this is note unique to Lemmy/Fediverse. Reddit admin or twitter admin (and even gmail) can also read your MP, see the hash of your password and remove your comments. Reading your MP is even part of their business model so they can show you personalized ads.

      There is definitely a probability to deal with a non reliable instance admin, but not less than with any other social media, and in principle they collect even less data

      • redballooon@lemm.ee
        link
        fedilink
        arrow-up
        7
        ·
        11 months ago

        Technically that’s true.

        To build trust and adhere to law, corporations will usually have processes and regulations in place that determine which employees can access and modify what. That is why spez modifying user comments is such a big deal. It showed that Reddit is not to be trusted. Nevertheless, for corporations that value customers trust, any employee who does not adhere to these procedures risks their employment.

        On smallish fediverse instances none of these procedures need to be in place, the admin is bound only by his own moral code.

        • Azura@lemmy.world
          link
          fedilink
          English
          arrow-up
          4
          ·
          11 months ago

          This is true. However keep in mind that instances survive on reputation. As soon as something like this came out, which is inevitable with time, nobody will trust that instance, or the person running that instance, again. And people are usually quite quick to find this out as already demonstrated by other online services. Hiding is very difficult. Even worse, once your reputation falls, people can move to a more respectful server and continue participating in the network, so in the end it’s a losing game for the instance owner. Password safety obviously applies, but if you take a look at big social media privacy and terms, a little password manager in my personal opinion is preferable.

      • SalamanderA
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        There is definitely a probability to deal with a non reliable instance admin, but not less than with any other social media, and in principle they collect even less data

        Yeah. You can see the cookies that are stored by a site by right-clicking on the site, going to “inspect”, and the clicking “Storage”. By default, the only cookie that Lemmy has is an jwt cookie used to authenticate your user.

        You are not asked for a phone number to be here. Providing an e-mail is often optional and even discouraged by some instances. When you want to send a private message through the site you get a message discouraging from doing that and encouraging to try to use an encrypted chat application instead, such as matrix.

        The original Lemmy instance (lemmy.ml) is a community for FOSS and Privacy enthusiasts. What is asks from a user and what it does with the data is what it needs to be functional. Lemmy lets you take any proactive step that you would like to take to protect your privacy - use a VPN or Tor, use safe passwords, use a unique identity, and don’t provide any personal information. There are no built-in features to block you or discourage you from doing that. Lemmy never asks for your location, nor does it keep any logs of what content you visit, nor does it try to run any analytics on you. But even if that is not enough for you, the fediverse doesn’t lock you out, you can set up an instance or even create a new program to interact and communicate only precisely what you want to communicate via activity pub.

    • Dandroid@dandroid.app
      link
      fedilink
      arrow-up
      4
      ·
      11 months ago

      I’m assuming votes are all federated, so I think any instance admin would be able to see who voted in which direction for any post that gets federated to their instance, no? Or is it just the vote count that is federated?

      • Nailbar@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        4
        ·
        11 months ago

        I remember seeing someone listing everyone who voted, so I think the votes themself are federated.

        Might even be accessible via the API so any frontend can list them, but that’s just a guess.

        • Dandroid@dandroid.app
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          11 months ago

          I kinda hope they don’t have an API for that. I really didn’t like it on reddit when two people would be having a debate on a topic, and one person would search the other person’s comment history to find something to attack their character on to hurt their credibility. I think debates should be handled using relevant points about the topic being discussed. Attempts to attack character are very underhanded. It’s how politicians debate. It almost like admitting that you couldn’t make a better point than your opponent, so you had to stoop to that level.

          I think having an API for votes and front ends that showed votes would encourage people to do exactly that here. If front ends started showing that info, I think it would discourage lurkers from voting, which I’m not sure we want.

          Obviously there’s very little that could or even should be done about admins seeing that info. Admins have full visibility and manipulation power over the DB, and I feel like this wouldn’t even make the list of improvements that I think lemmy needs right now. Admins just sort of need to be trusted or people will leave your instance.

          • SalamanderA
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            11 months ago

            No, there is no API to get the votes (https://join-lemmy.org/api/). If my understanding is correct, now that I upvoted your comment my instance will push that information. I’m not sure whether it pushes it to dandroid.app first or to all instances, saying basically “Sal@mander.xyz upvoted https://dandroid.app/comment/441785”, and so every instance that has that comment can save my user ID in the “upvote” list of that comment, and that upvote is counted.

            If only the vote direction was federated, then it would be very easy for me to spam the message “Upvote https://dandroid.app/comment/441785”. I would not even need to create an instance for that, I just need to speak ActivityPub. And it would be more difficult to detect that I am doing that, because the database would only hold the vote count.

            I don’t think there is a way to ask an instance to reveal this list. You can only get it by directly querying the database if you have access to it. This is why if you fetch an older post or comment, it will arrive with a single or zero votes.

      • SalamanderA
        link
        fedilink
        arrow-up
        1
        ·
        11 months ago

        The votes themselves are the federated action.

        If you fetch an old post, your instance will not see the previous voters. After that, whenever a user votes the instance will get the message “User X@instance upvoted/downvoted post Y” and the vote will be added to the database with the voter’s user ID and counted.

        This has a practical function. If you don’t keep a list specifying who voted for what, it would be much easier to fake votes from one instance to another by simply communicating the message “Downvote post Y”. With the current method it is still possible to create a lot of fake accounts and mass-vote, but at least you can get a better insight when looking at the database if the votes are associated with accounts with no activity from a single instance.

        There are some federated platforms that will show who likes / dislikes something. I know that friendica used to do this - I have not checked if it still does. So it is not only admins who can see this, this is is basically open information in the fediverse.

    • Psythik@lemm.ee
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago

      Can you recommend a good free web host for running your own instance? I haven’t dabbled in web development in over 15 years now, so I’m kinda out of the loop.

      • SalamanderA
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        I’m not sure about Web Hosting. Many of us use a dedicated virtual private server (VPS)

        I use https://serverspace.io, I think Lemmy.ml is hosted with https://www.hetzner.com/

        These are servers that you access via SSH and can install the instance inside of it. I personally install using docker compose, but there are some other methods that are claimed to be easier. The cost starts at ~$5 / month. Currently I pay about $15 / month. You would then rent the domain name from a domain name registrar (I use namecheap.com) and ask them to point the domain name to your server’s IP address.

        • Psythik@lemm.ee
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          11 months ago

          I looked into it and gave up after half a day of trying. I can’t figure out how this SSH thing works at all.

          I’m used to CPanel and uploading files via FTP. I can code some CSS and manage a MySQL server, but this modern era of web development goes over my head. Apparently now you have to pick a Linux distro and install it, instead of it just being ready to go for you. (At least that’s how it worked with Oracle).

          Thanks for trying to help but I’m too old for this shit now. I don’t even know what “docker compose” means. I’ve read the official documentation and looked at tutorials, but it’s all a foreign language to me now. Like I said, in my day you just uploaded the files via FTP, changed some lines in a config file, redirected your .com to your nameservers in CPanel, and you were good to go. Installing an instance is 10x more difficult. Wasted $9 on a domain for nothing… *sigh*