• 0 Posts
  • 52 Comments
Joined 11 months ago
cake
Cake day: July 31st, 2023

help-circle


  • With MacOS, specifically, it’s stupidly easy and unintrusive to enable disk encryption. Outside of that, programs can save key-value pairs to Keychain (a credential store) and use that to store a randomly-generated encryption key.

    It’s true that any program running with the user privileges and within its session can open the file, but once the user logs out it’s unreadable.

    If the data was saved to the login Keychain, it should only be accessible while that specific user is logged in. The existence of vulnerabilities notwithstanding, it should actually be reasonably secure as long as System Integrity Protection is enabled and the program in question isn’t running. SIP stops users (including root) from messing with system files or processes, and the Keychain requires a user password prompt to give programs access to entries created by other programs.

    Now, considering all the above… it would have taken a day at most to figure out how to encrypt the data before it gets written to the file so it’s not just sitting completely out in the open.







  • To offer a differing opinion, why is null helpful at all?

    If you have data that may be empty, it’s better to explicitly represent that possibility with an Optional<T> generic type. This makes the API more clear, and if implicit null isn’t allowed by the language, prevents someone from passing null where a value is expected.

    Or if it’s uninitialized, the data can be stored as Partial<T>, where all the fields are Optional<U>. If the type system was nominal, it would ensure that the uninitialized or partially-initialized type can’t be accidentally used where T is expected since Partial<T> != T. When the object is finally ready, have a function to convert it from Partial<T> into T.



  • It seems pretty obvious to me at this point that the DNC would rather lose than have an actual progressive win.

    It’s not in their interests to let a progressive win. Just like their counterpart, the DNC takes a shit ton of bribery donations from corporations lobbyists. Bringing in a progressive who would reform the system or push back against pro-corporate policies is biting the hands that feed them.



  • pivot_root@lemmy.worldtoLemmy Shitpost@lemmy.worldStay Mad, Tankies
    link
    fedilink
    arrow-up
    11
    arrow-down
    5
    ·
    edit-2
    9 days ago

    The system is set up in a way that the only viable options are between two evils, unfortunately. Under a FPTP system where the only good options are minority parties that won’t win a single seat in their districts, you’re left with the choice of voting for the lesser evil, or voting for your morals but increasing the risk of the greater evil winning.

    It’s a no-win situation.







  • The problem is that they’re trying to frame it as a better replacement for sudo when it’s really not.

    In some respects, it’s safer by not using a setuid binary. In other respects, it massively increases the surface area by relying on the correctness of three separate daemons: systemd, dbus, and polkitd. If any one of those components are misconfigured, you risk an unauthorized user gaining root privileges.

    With sudo, the main concern is the sudo process being exploited through memory safety bugs since it runs at root automatically.

    Don’t get me wrong, sudo has a lot of stupid decisions and problems. There’s a ton of code in sudo for features that almost nobody uses, and there’s bound to be bugs in there somewhere. It needs to be replaced with something simpler, but run0 is not that.