我希望能够发现我们的生产服务器上是否安装了Debian软件包,其功能应该与extension_loaded()
类似。
有人可以推荐一种方法吗?我只能假设我应该使用exec()
并解析'未找到命令'的返回值,我想知道是否有更安全/更好的选项。
答案 0 :(得分:2)
如果您有权执行,那么您可以使用以下之一:
whereis packagename
apt-cache policy packagename
答案 1 :(得分:2)
您可以为此编写一个简单的API。它应该做如下的事情;
上述提出的解决方案的缺点是需要一些时间,例如。您无法实时检查包的可用性。如果这实际上是强制性的,你可以写一个不带任何输入的php脚本,但是读出应该从数据库或文本文件中检查的包,其中值已经过广泛测试,例如。使用正则表达式。通过这种方式,您确定恶意用户无法注入shell命令。