基于CGI的网络应用程序有多安全?

时间:2008-10-16 22:11:46

标签: security cgi

使用CGI的一个众所周知的主要缺点是网络服务器性能不佳。但是基于CGI(主要是基于C / C ++)的应用程序有多安全?在C / C ++上构建CGI架构是否存在重大安全漏洞?

我想了解一些基于CGI的网络应用/网站的实际实现。我所知道的是javaranch.com。

4 个答案:

答案 0 :(得分:5)

我会在任何地方看到的主要安全漏洞,包括C / C ++,都不会使用标准的开放式CGI库,也不会阅读其文档,并且认为您无论如何都是安全的。

  • 不要重新发明轮子。使用CGI库。有些语言有这种内置(PHP可能有),其他语言包括它(Perl浮现在脑海中),其他语言需要你从别处获取它(C / C ++)。确保你知道它是什么,并使用它。 尝试自己实施。如果你不得不询问安全问题,那么你和我一样没有资格写这篇文章。
  • 阅读文档。如果您正在使用一个完善的库,那么将会有关于安全问题的文档以及您可以采取哪些措施来避免它们。
  • 不要以为你是安全的。我很确定我不安全,即使我已经遵循了CGI库中Perl的所有规则,以及数据库接口库中的规则等等。但我仍然认为我不安全,并保持在那里做任何事情时,它都是我心中最重要的。我是否应该成为安全方面的专家,也许我会改变我的假设。还不确定。

安全性总是多方面的,而且总是不完整的。各种各样的软件都有漏洞 - 以前认为安全的软件。现在,我们拥有比15年前更多的安全最佳实践。我们有SELinux以提高安全性。

当然,问题是 - 你的应用程序有足够的安全性吗?合理的努力能为您提供合理的安全级别吗?当然,这就是我不使用C / C ++的原因,但我使用的是Perl。确保我不会在Perl中覆盖内存比在C ++中覆盖内存需要花费更少的精力。这是一个安全级别,没有涉及实际工作。

答案 1 :(得分:2)

CGI并不比任何其他WSAPI更不安全。这完全取决于程序对代码的作用。所有CGI都设置环境变量并处理程序。

答案 2 :(得分:0)

许多网站都是基于CGI的。位于托管上的许多PHP站点都以CGI模式运行 - mod_php很难在共享环境中使用 - 没有suid。

通常,作为CGI运行的性能较低,但安全性较高 - 您无法访问webserver内部(与mod_perl和mod_php一样),因此使用漏洞更难。如果你使用cgi-bin,你的非执行文件是不可见的(PHP程序员常见的错误是他们有扩展名如.inc的库,因此直接请求此文件时会显示源代码。)

答案 3 :(得分:0)

Perl的污点检查模式提供了一种提高安全性的绝佳方法。