Webhooks can be a very powerful thing when you try to automate or integrate software, however, handling their deployment in a controlled environment can suck in terms of security and deployment alone.
I need a way of allowing anybody in the company —anybody that can be trusted with API access, that is— to be able to create, deploy, use (and perhaps even share) webhooks without requiring access to a server.
I have thought that a way of doing this is to create a small application that can store, route and run scripts. The best way I can think to implement such a thing is by taking code stored in a database and creating a temporary file to then run a system command for the given language.
However, I think there would be nothing that would prevent that code from, say, shutting down the machine, downloading and executing external dangerous code, etc.
Then I thought about Linux containers, but I would preferably want a portable solution. I looked for an equivalent in Windows and apparently the technology does not exist yet:
http://www.theregister.co.uk/2014/10/16/windows_containers_deep_dive/ http://www.theregister.co.uk/2014/11/18/windows_docker_client/
Is there a simpler approach that can still be regarded as secure?, I would want to at least be able to execute php, python, ssj and shell scripts.
P.S.: Free downvotes for whoever suggests PHP eval
chroot()
ingsetuid()
ing and resource limitation. If you are willing to accept the tremendous overhead, it might be a safe solution to run the code in a virtual machine dedicated to this sole task and disconnected from the internet and other system resources.