Why not whitelist? A list of function allow to use will be better.
Kwanhur Huang TL;DR > 2022年3月30日 下午1:55,shirui zhao <zhaoth...@gmail.com> 写道: > > 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 > >