我正在用PHP创建一个Web代码测试器应用程序,它可以直接执行PHP和MySql代码。这使用户能够立即在我的网站上测试他们的网络摄像头。但是,我想这样的代码会带来很多(可能的)安全问题,因为它只执行用户在文本框中编写的任何代码。所以我想知道:我如何使这样的代码测试器安全?到目前为止我所做的是从用户输入代码(例如函数CHMOD)中preg_matching所有“危险”的PHP函数,但我不确定在PHP中为所有可能有害的函数执行此操作是否现实。
有关如何使我的脚本安全的任何建议?
先谢谢了, Skyfe。
答案 0 :(得分:2)
我对你没有“回答”,但希望可以提供一些建议和一些事情来考虑......
这听起来不是一件容易的事。到目前为止你采取的解决“危险”代码的方法肯定并不是一个好主意。在“可能变得危险的代码”和“用户希望能够使用的标准代码”之间存在重叠的批次。
听起来这个任务比代码本身运行得更深。执行代码的服务器上的进程需要沙箱化,服务器本身应该是沙盒等等。有些问题要问自己:
例如,PHP代码是否在与Web服务器相同的用户上下文下执行?例如Apache?如果是这样,那么用户提交的代码可能会用于重新配置您的Web服务器,从而为更多漏洞打开它。它是以root身份运行还是对以root身份运行的任何内容进行受信任访问?
在服务器上执行用户提交的代码所带来的安全隐患远远超出了接受代码的Web应用程序。