back

by stevekrouse·3y ago·view on hn ↗
I don't want to say too much, because I know our security isn't perfect, and some about of obfuscation adds some security. Once we move to a more secure model, I will happily tell you all what use used to use to sandbox code.

Soon we'll do real sandboxing, either ourselves through Docker, wasm, bubblewrap[1], etc, or an existing FaaS (Lambda, Deno Deploy, Cloudflare Workers) or FaaSaaS (Deno Subhosting)

[1] - https://github.com/containers/bubblewrap

2 comments
FWIW Cloudflare offers Workers for Platforms, which I literally called "FaaSaaS" in my early design docs but for some reason that name didn't stick... :)

https://developers.cloudflare.com/cloudflare-for-platforms/w...

Amazing! We should chat :)
Fair enough. I guess a more basic question than how you're preventing people from probing for nodejs packages they could misuse would be the more pedestrian problem of how do you deal with runaway processes, especially if they end up blocking the event loop that should theoretically kill them. Mark/sweep from another process that restarts pm2 or whatever?

The reason I'm curious is that a lot of my private projects rely on evaluating code server side, but it's a big reason I'm not willing to share them with the public, because the overhead of watching for abuse would just make it.. not worth it. It falls into the category of "this is why we can't have nice things".

As a security challenge though (for the defender) I do love something like this. But I doubt dockerizing it would help against CPU abuse unless you want to spin up a docker vm for every request..