HN discussion: https://news.ycombinator.com/item?id=41404064
Similar tools:
https://github.com/dividuum/html-vault
https://github.com/MaxLaumeister/PageCrypt
https://github.com/a-nau/password-protected-website-template
https://github.com/sowbug/quaid
https://github.com/mprimi/portable-secret
Thanks to @refalo@programming.dev
Have you used any of these? Are you able to compare you this one or to the others on your list? Maybe a better question, which one/s would you recommend?
Sounds like JS is a depend
Well yeah, you need to do the computation somewhere and it’s not doing it on the server so…
Right, so it has a depend and it won’t work for many users
There’s no way to otherwise make this work for many users. They can use Tor if they’re worried.
Static
Javascript
Has someone changed the meaning of static?
It depends what static refers to. In this case, it refers to static file creation without PHP (or Python) on the server. The content itself can stay static, JavaScript and its dynamic nature is just used to encrypt and decrypt.
No, static sites are usually more js heavy because they offset all the processing to the client.
This is one reason I avoid static sites, and just heavily cache the server.
Static files as in static file handling in a web server no CGI, modules, server side code required.
Served as “flat files” - filesystem, object store, what have you. No server logic generating content, just passing around of strings and binary data. Files are the representation are the source of truth. Counter to a web app, where the content response is ephemeral and the “source of truth” is scattered across a writeable DB and recombinated (potentially) on every request.
Interesting question though, I (a web dev) just take the term for granted.
It’s been always the same. Backend, server logic, database… dynamic content; on one hand. JavaScript runs on the browser for almost anything, sometimes for dynamic content. But it’s not tied. You could have an in-browser button with a counter for the numbers of times it was pressed (that’s actually an entry-level programmer exercise) and that’s a static site. If you saved the counter value to the server (e.g. database) then it’s not static anymore.
I think they mean taking a static site, and encrypting that with an attached JS. It could be done with a browser extension too (probably), but that way it would be less portable
Clone it before the Glowy Boys declare it a weapon of mass destruction and preemptively nuke the repo.
Way cool! Might actually try it sometime.
This seems like a cool idea, but also somewhat questionable from a security standpoint? Isn’t distributing the encrypted content alongside the means to decrypt it (i.e. bundling this all in one file which is sent to the client) essentially equivalent to providing physical access to an encrypted drive? Like an attacker with enough time and effort could bypass the encryption.
It is not a problem to distribute the decryption algorithm. The question remains against what this will protect. Normal https encrypts the traffic safely during transit. With this, the data is also encrypted on the server. But if you can access the server, you can modify the javascript code to send the password back to a server.
It could be used on something like IPFS, where all data is basically public but you can be sure it hasn’t been modified.
Exactly. This shouldn’t be used to store your taxes, for example. But it might be good if you want to post details about your baby shower without your parents getting the details.
Yep, definitely situational depending on your risk model/tolerance; pretty cool idea nonetheless.