Hello, community,

I noticed that Apache APISIX supports serverless plugins for hot loading user's 
code, which is a very nice feature. However, Apache APISIX does not seem to 
limit the execution environment of these hot codes, and there may be some risks.
The hot code loaded by lua and the framework code of the entire system run in 
the same context. If there is an operation to operate the global environment in 
the hot loaded code, it will affect the function of the entire system. I wrote 
a simple in the issue. example[1]. Worse yet, if a hacker uses malicious code, 
it could exploit this feature to attack the user's operating system.

So I think Apache APISIX can add a layer of protection when executing hot code, 
so that hot code can run in a sandbox. Here is an article[2] describing how to 
use sandboxing in lua code to safely execute hot code, we can refer to it.
I personally think setting a blacklist of safe functions is more appropriate. 
What is everyone's opinion? Is there a better way to achieve this? Welcome to 
discuss.

[1]: https://github.com/apache/apisix/issues/6729
[2]: http://lua-users.org/wiki/SandBoxes


-- 
Thanks,
Shirui Zhao


Reply via email to