[–] [S] 1 point 11 hours ago* (last edited 11 hours ago)

Thanks for the sources, reading them make me realize : MAYBE I have been protected so far because my website is built using InfernoJS and I didn't realize Forgejo doesn't requires Javascript.

So the spams are more likely to appear from the "low-effort" bots that don't run a Javascript engine. The problem is that the website has only 5 static pages (the JS framework allows better server efficiency and language/theme switch) so spam were never an issue (you can get the whole websites in 10 requests).

I am thinking about adding a fail2ban rule on the 503 answers triggered by nginx rate limit. This should but this would once again only protected against low-effort bot that don't calculate the rate limit.

Experience will tell how good of a protection this is.

Let me add that the website is still not using Anubis, this is only for the public forgejo instance. Also any published software is mirrored on codeberg. I think visitors of the self-host git repository is very niche and specialized, for any one but me looking at this forgejo instance should be more of looking my work or backup of the published work than anything, so very niche.

PS : loving the runtimewire article concluding "instead of repeatedly charging the humans trying to read the page" when they have this

  • source
  • parent
  • context
  • [–] [S] 3 points 2 days ago

    The principle is pretty simple : use a little bit of compute. If you're a bot and want to visit many sites the cost will add up, if you are a human going to a website the 1 second cost for the initial page is not a big deal.

    Also notice the difference with the extremely annoying cloudflare checkbox asking if you are a human that became ubiquitous lately. I'd rather wait a second.

  • source
  • parent
  • context
  • [–] [S] 3 points 2 days ago

    Actually same, this blog is also a nice way for me to document how my server was setup.

    I am quiet distro hopping because of ARM based distribution never really working nicely (GPU acceleration, old hardware not being updated). I need to remember what is what and why as my main job is not really taking care of servers but coding.

  • source
  • parent
  • context
  • [–] [S] 1 point 2 years ago* (last edited 2 years ago)

    Sorry I had in mind you login in from a computer that was compromised (without your knowledge), I didn't had in mind a computer compromised without being in use.

    EDIT : store your 2FA in the browser from the extension would not be 'like an idiot' as it is encrypted.

    EDIT 2 : no forget everything, this whole situation is absurd. If your computer is compromised your password are not (do you store in clear text?!). If you use it to login you are owned already.

  • source
  • parent
  • context
  • [–] [S] 1 point 2 years ago

    There is indeed a whole lot of problems with security and we don't have consensus on a nice/minimum setup. My main concern right now is the physical access to hardware (my place is far from being a vault). Finding my address would not be that big of an issue then getting in would be very easy.

    For now having backups in multiple places is the best for me, having physical keys is not solving any on my security concern. The good part is no one cares about my stuff so for now this is OK.

  • source
  • parent
  • context
  • [–] [S] 4 points 2 years ago (1 child)

    This is were the manifest/permission is important. I cannot emphasize enough that I had to code this myself because, at the time, nothing else would be OK with me. This was because of 1- way too big of a code base, 2- way too many permissions.

    It is indeed a problem that extensions are not as well maintained as Linux distribution packages but in this specific instance the extension has no right to read any information nor send requests to any server.

  • source
  • parent
  • context
  • [–] [S] 2 points 2 years ago (1 child)

    If you have any concern I would gladly hear technical insight about the threat model involved. The cross-post on the Privacy communities sparked more conversation if you want to follow up on that point : https://lemmy.ml/post/12744864.

    Extension "authenticator" has been around for more than a decade now. I am sharing something that is small, simple, auditable and secure (no permission to do anything but past on clipboard).

  • source
  • parent
  • context
  • [–] [S] 2 points 2 years ago* (last edited 2 years ago)

    There is an irony in password managers that stores your password but need a password (passphrase would be better). A password for your passwords. Fundamentally this is because the only secured space, only you can get in and no one else, is your own brain.

    Most password leaks are usually caused by bad implementations on the server side. I have an authentication protocol to avoid many password leakages I'd like to share one day (double salt, one from client, one on server so password is never shared to the server).

  • source
  • parent
  • context
  • [–] [S] 2 points 2 years ago

    Websites have no way to creep into your browser, extensions included. Usually it is the other way around. Such a leak would be catastrophic for the browser (thinks of all the password manager). At least here it is not even a password manager but only the TOTP so you still have your password as security (still this will never happen realistically).

  • source
  • parent
  • context
  • [–] [S] 8 points 2 years ago* (1 child)

    Database is encrypted in the local storage of the extension. So far Firefox is secure enough so this is not accessible from outside (it is encrypted anyway). The encryption is using the crypto web API (native from web browser) to use PBKDF2 key. It is decrypted with your password so the database is in RAM (not saved anywhere unencrypted) as long as the browser is open or you click to "logout".

    You can export/import all the entries with a simple JSON format (for now, simple "name"+"secret" for each entry). You should encrypt this export file or save it in a encrypted volume yourself.

  • source
  • parent
  • context
  • submitted 2 years ago* (last edited 2 years ago) by to c/privacy@lemmy.ml
     

    cross-posted from: https://lemmy.ml/post/12744832

    As I updated the version to 1.4.0 , adding the 'import' feature I am sharing this here.

    I made this extension because I couldn't find one that wouldn't ask for too much permissions (such as accessing all websites data).

    Eventually I found it nice to have a TOTP that can really be audited, the code is 649 lines of JS, 214 CSS and 52 HTML. Feel free to fork, copy part of it, contribute or just request fix/features.

    I have used it for more than a year every day and it works nicely.

    submitted 2 years ago* (last edited 2 years ago) by to c/opensource@lemmy.ml
     

    As I updated the version to 1.4.0 , adding the 'import' feature I am sharing this here.

    I made this extension because I couldn't find one that wouldn't ask for too much permissions (such as accessing all websites data).

    Eventually I found it nice to have a TOTP that can really be audited, the code is 649 lines of JS, 214 CSS and 52 HTML. Feel free to fork, copy part of it, contribute or just request fix/features.

    I have used it for more than a year every day and it works nicely.

     

    I am making a series of blog posts about website and application hosting. There are many topics I'd like to talk about (IP, DNS, logs, linux settings). I am sharing here some knowledge and documenting for myself too.

    This first post is not the most interesting in my opinion as this is talking about the basis : hardware and Linux distribution. I am not talking about non-Linux OS (OpenBSD, FreeBSD, etc). For the next one I will document way more commands and process to go through (iptable, fail2ban, logs on memory, etc).

    I don't consider myself good at writing so any help is welcome, I try to put as many images/charts as possible but this one is tricky. Feedbacks are welcome.

    view more: next ›