在html目录中或之上管理bash脚本安全性



我工作的公司使用高度定制的wordpress安装。我已经编写了一个自定义插件来处理使用ffmpeg的视频转换和编码。该插件执行一个bash脚本到utilzilie ffmpeg,转换视频,然后编辑相关的数据库表以反映更改。

出于管理和版本跟踪的目的,我将必要的bash脚本保存在同一个插件文件夹中,但现在我注意到它存在安全缺陷。如果有人手动输入url,他们可以读取bash脚本。

我一直在摆弄所有权/权限设置,试图让它仍然可以执行,但用户看不到它们,但我无法让它发挥作用。默认情况下,脚本具有由apache(默认:defalt)和权限设置755指定的任意用户的所有者和组。我已经尝试设置了所有其他类型的权限(例如root:默认751),以尝试并使其成为用户无法读取脚本但仍将执行的权限。

我可以把脚本放在html主目录下,它们会很好地工作,但在我们所有的网站上管理、更新和部署这些脚本会更复杂(我们有大约5个代码库相同,但在未来几周和几个月内可能会有更多)。

有人知道权限/所有权应该是什么吗?这样我就可以把bash脚本保存在插件目录中,在那里它们可以正常执行,但无法读取?或者有人对如何实现这一点另有想法吗?

2个解决方案:

  1. 使用.htaccess隐藏脚本(将它们放在单独的文件夹中)

    RedirectMatch 404 .*
    

    添加调用PHP脚本的crontab条目(就像在每分钟中一样)。他们将从数据库表中获取任务,并使用适当的参数调用shell脚本。

  2. 如果你想让它们可调用,那么把它们放在一个子文件夹中,并用上面的htaccess文件隐藏它们。然后创建PHP文件,这些文件具有身份验证(如基本的HTTP身份验证),如果身份验证成功,他们将调用shell脚本,传递获得的参数。

最新更新