3

CGI を使用することのよく知られた主な欠点は、Web サーバーのパフォーマンスが低いことです。しかし、CGI (主に C/C++) ベースのアプリケーションはどの程度安全なのでしょうか? C/C++ で構築された CGI アーキテクチャに重大なセキュリティ ホールはありますか?

CGI ベースの Web アプリ/Web サイトの実際の実装について知りたいです。私が知っているのは javaranch.com です。

4

4 に答える 4

6

C/C++ を含め、どこにでも見られる主要なセキュリティ ホールは、標準のオープン CGI ライブラリを使用せず、そのドキュメントを読まず、とにかく安全だと思っていることです。

  • 車輪を再発明しないでください。CGI ライブラリを使用します。一部の言語にはこれが組み込まれており (PHP はおそらくそうです)、他の言語には組み込まれており (Perl が思い浮かびます)、別の場所から取得する必要がある (C/C++) ものもあります。それが何であるかを理解し、それを使用していることを確認してください。自分で実装しようとしないでください。セキュリティについて尋ねなければならない場合、あなたは私のように、それを書く資格がありません。
  • ドキュメントを読んでください。十分に確立されたライブラリを使用している場合は、セキュリティの問題とそれらを回避するためにできることに関するドキュメントがあります。
  • 安全だと思い込まないでください。Perl の CGI ライブラリのすべてのルールやデータベース インターフェイス ライブラリのルールなどには従ったにもかかわらず、安全ではないことは確かです。そこで何かをするとき、それは私の心の最前線にあります。私がセキュリティの専門家になったら、私の仮定を変えるかもしれません。まだ確かではない。

セキュリティは常に多面的であり、常に不完全です。あらゆる種類のソフトウェア、つまり以前は安全だと考えられていた可能性のあるソフトウェアには、常に穴が発見されています。そして今では、たとえば 15 年前よりも多くのセキュリティのベスト プラクティスがあります。また、セキュリティを強化するために SELinux を使用しています。

もちろん、問題は、アプリに十分なセキュリティが確保されているかということです。合理的な努力によって、合理的なレベルのセキュリティが得られますか? もちろん、それが私が C/C++ を使用しない理由ですが、代わりに Perl を使用しています。Perl でメモリを上書きしないようにするのは、C++ で行うよりもはるかに少ない労力で済みます。これは、実際の作業を伴わないレベルのセキュリティです。

于 2008-10-17T04:58:46.880 に答える
2

CGI は、他のどの WSAPI よりも安全ではありません。プログラムがコードで何をするかがすべてです。CGI が行うのは、環境変数の設定とプログラムへのハンドルだけです。

于 2008-10-16T22:13:16.090 に答える
0

多くのサイトは CGI ベースです。ホスティングにある多くの PHP サイトは CGI モードで実行されます - mod_php は共有環境では使いにくい - suid はありません。

一般に、CGI として実行するとパフォーマンスが低下しますが、セキュリティの点では優れています。(mod_perl や mod_php のように) Web サーバーの内部にアクセスできないため、脆弱性を利用するのは困難です。cgi-bin を使用すると、非実行ファイルは表示されません (PHP プログラマーによくあるバグは、.inc のような拡張子のライブラリがあるため、このファイルを直接要求するとソースが表示されることです)。

于 2009-04-26T23:42:22.467 に答える