使用CGI的一个众所周知的主要缺点是网络服务器性能不佳。但是基于CGI(主要是基于C / C ++)的应用程序有多安全?在C / C ++上构建CGI架构是否存在重大安全漏洞?
我想了解一些基于CGI的网络应用/网站的实际实现。我所知道的是javaranch.com。
答案 0 :(得分:5)
我会在任何地方看到的主要安全漏洞,包括C / C ++,都不会使用标准的开放式CGI库,也不会阅读其文档,并且认为您无论如何都是安全的。
安全性总是多方面的,而且总是不完整的。各种各样的软件都有漏洞 - 以前认为安全的软件。现在,我们拥有比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的污点检查模式提供了一种提高安全性的绝佳方法。