攻击者可以下载 cgi 脚本吗?

Can cgi scripts be downloaded by an attacker?

我有一个相当简单的问题,但到目前为止无法在互联网上找到答案: 攻击者是否可以通过任何方式从网页下载 CGI 脚本(Perl、Python,等等)?

或者换句话说:在 cgi 脚本中包含敏感信息(例如,另一个服务的访问密钥)是否存在安全风险?

谢谢!

Is there any way an attacker can download a CGI Script (Perl, Python, whatever) from a webpage?

网络服务器的设计试图阻止这一点,但网络应用程序的设计应该假设这一点。 - 即这不是它应该如何工作,但它并不少见。是否可能取决于你问这个问题的原因。

可能 特定黑客可以从您的下载脚本网页,如果他有一个值得他们花时间这样做的攻击媒介。

This answer 另一个问题(尽管与 PHP 相关,原则是相同的),详细解释了一些可能导致漏洞利用的因素。

Is it a security risk to have sensible information (e.g. access keys to another service) within a cgi script?

是的。虽然总是存在风险,并且该风险的可接受性取决于您的应用程序和特定权衡,但这种特殊情况有两个主要缺陷(如果不是更多的话):

  1. 如果您的服务器或 CGI 处理程序出现任何问题,您可能会有一个 public 面向文本文件
  2. 只是如此简单,只是为了把私钥放在那里。

即使私钥仅访问免费层上的 VM,它除了 return 您当地城市的天气什么都不做,您至少应该采用一种模型,其中私钥无法通过网络访问服务器用户(即 www-data 等)。也就是说,您可以让您的 CGI 处理程序简单地将 paramaters/arguments 传递给另一个本地服务来解析和调用所需的操作。