我了解到您的 Web 服务器可能会出现问题,这可能会导致 PHP 脚本在 Web 浏览器中显示为纯文本文件;因此,我已将大部分 PHP 脚本移至 Web 根目录之外的目录。现在我一直想知道我的 cgi-bin 中的 CGI 脚本是否会发生同样的情况。
是的。如果出现问题导致程序被服务而不是执行,那么它们的任何内容都将被暴露。这与 PHP 的问题完全相同(除了考虑到通常配置 cgi-bin 目录的方式(即别名为 web 根目录之外的目录),问题的发生稍微困难一些)。
我主要关心的是一个脚本,其中包含我的 MySQL 数据库的用户名和密码。如果这是一个可能的安全漏洞(至少就数据库内容而言),是否有办法将敏感数据放在不同的位置并从那里获取(比如将其保存在不同目录中的文件中并读取例如,它来自该文件)?
是的。正是如此,只需确保该目录位于 webroot 之外。
为提高安全性,请确保数据库仅接受来自需要访问它的最少主机集的连接凭据。例如,如果数据库与 Web 服务器在同一台服务器上,则只让凭据对 localhost 有效。在这种情况下,使数据库仅侦听 localhost 网络接口也是一个好主意。
我的脚本是用 Perl 写的。
我会考虑为此使用Config::*模块之一。