PHP は非常に人気のある Web サイトスクリプト言語ですが、その固有のセキュリティは非常に弱いです。この記事では、PHP 拡張プロジェクト (Hardened-PHP プロジェクト) と、拡張された PHP セキュリティ構成を提供する新しい Suhosi プロジェクトについて説明します。
PHP は物議を醸していますが、最も人気のある Web サイト スクリプト言語です。低価格であるため人気がありますが、その低価格により、PHP で作成された Web アプリケーションがますます増加しており、同時に PHP 自体のセキュリティの脆弱性も増加しています。これらの機能は、PHP が非常に信頼性が低いことを示していますが、同時にスクリプト言語自体は非常に柔軟で、それを使用してコードを実装するのは簡単ですが、これらのコードは肥大化しており安全ではありません。ユーザー。あらゆる種類のアプリケーションが、SQL インジェクション、クロスサイト スクリプティング、任意の実行などに対して脆弱であるというこの脆弱性を何度も示していると想定できます。
safe_mode や open_basedir などの組み込みの PHP セキュリティ対策は無視されるため、PHP Enhancement Plan はより安全な PHP を作成し、PHP の検証チェックも実行します。当初、これらは、PHP 自体にパッチを適用して再コンパイルする必要がある拡張 PHP パッチによって実現されました。最近、PHP Enhancement Project は Suhosin と呼ばれる新しいプロジェクトをリリースしました。
Sohosin は 2 つの部分で構成されています。最初の部分は PHP パッチで、バッファ オーバーフローの可能性を回避し、関連する弱点を防ぐために Zend エンジン自体を強化します。 2 番目の部分は、PHP のスタンドアロン モジュールである Suhosin の拡張です。 2 つの部分は連携して動作することも、拡張機能が独立して動作することもできます。
開発者は、セキュリティ上の理由から独自の PHP インストール設定を維持する必要はなく、ベンダーが提供する Linux ディストリビューション上で PHP を直接使用することを好みます。拡張モジュールを使用して、PHP 自体にさらに多くのセキュリティ機能を提供します。は利用できません。
拡張機能はインストールが簡単です。PECL 経由でインストールすることも、ダウンロードしてコンパイルすることもできます:
$ tar xvzf suhosin-0.9.17
$ cd suhosin - 0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
suhosinを使用するには, 次のように /etc/php.ini を追加する必要もあります:
extension=suhosin.so
ほとんどの人にとって、デフォルトの設定オプションで十分です。設定を強化するには、/etc/php.ini に対応する値を追加します。さまざまな構成オプションについては、Web サイトで詳しく紹介されています。これらの手順は、初期構成に役立ちます。
Suhosin を使用すると、これらのログをシステム ログに保存したり、同時に他のログ ファイルに書き込んだりすることもできます。ホワイトリストは、GET リクエストと POST リクエスト、ファイルのアップロード、Cookie をフィルタリングできます。暗号化されたセッションや Cookie を送信したり、送信できないストレージを設定したりすることもできます。オリジナルの PHP 強化パッチとは異なり、Suhosin は Zend Optimizer などのサードパーティ拡張機能と互換性があります。