Perl 脚本
我有一个在旧的 Debian 6 服务器上运行的 Perl 脚本(直到我移动到新服务器),它在 .shtml 文件中打开一个可编辑窗格,只接受来自单个用户的Creole标记输入,并写入两个用户可编辑的 . shtml 文件,并在保存编辑后的 .shtml 文件时制作每个文件的备份副本。.shtml 文件权限为606
或-rw----rw-
.
编辑后,非技术用户必须输入密码才能触发脚本,并且(在不太可能的情况下,他会这样做)“脚本”标签以纯文本形式出现。
在切换服务器之前,这些服务器曾经在suEXEC
其下运行(我没有设置也不想使用),但现在它们需要更改权限才能运行。
可写文件
这两个可编辑的 .shtml 文件是 SSI,virtualHost 块设置为IncludesNoExec
.
用户目录中没有 .htaccess 文件public_html
,唯一的其他用户只进行过简单的 HTML 编辑并且没有其他知识,我在cgi-bin
上面的public_html
文件夹中管理脚本,用户目录中的所有文件都是所有者/组用户名。
我的问题,考虑到上述情况:
- 如果文件权限是
606
/有什么我应该注意的-rw----rw-
吗? - 现在我还能做些什么来进一步保护这样一个旧的 Debian 服务器?
我已经考虑将服务器端口从 22 更改为更高的端口,我已经在另一台服务器上完成了这项工作,但是对于在这个旧服务器上运行的几个站点,我还无法访问他们的 DNS 或远程登录设置,所以这还不是一个选择。像许多人一样,我并不是真正的服务器管理员,但在我的共同开发人员去世时必须维护一些东西。
最重要的问题是:
从您的描述看来,该应用程序是一个 HTML 表单,而您的程序是一个 CGI 脚本。因此,当用户单击“提交”按钮时,该脚本由 HTTP 服务器守护程序用户启动。
如果此 CGI 脚本或其他脚本受到损害,您不希望修改您的脚本。所以该脚本必须只能由HTTP daemon 用户读取+执行,并且文件的所有者必须是另一个用户,所以daemon 用户不能更改权限。
.shtml 文件必须由守护进程读写,并且不属于守护进程。脚本绝不能删除它们,而只是重写它们的内容。
存储脚本和 .shtml 文件的目录不得为 HTTP 守护程序用户可写或拥有。