人間とウェブの未来

「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。

mod_process_securityを任意のhandlerで権限分離できるようにした

Apacheのコンテンツ処理をスレッド単位で権限分離するセキュリティモジュールのmod_process_securityですが、これまでは基本的に拡張子で権限分離を行うかどうかを判定していました。

ですが、今回新たに任意のhandlerをキーに権限分離できるようにしました。

mod_process_securityについてご存知出ない方は以下の論文を参照下さい。

github.com

例えば、特定のディレクトリ以下に以下のような.htaccessを置きます。

<FilesMatch "\.phps$">
  SetHandler application/x-httpd-php
</FilesMatch>

この場合、該当ディレクトリの.phpファイルにリクエストがあるとapplication/x-httpd-phphandlerがrequest_recのr->handlerにセットされます。

それに対して、mod_process_securityの設定で、

PSHandlers application/x-httpd-php

などとしておくと、application/x-httpd-phphandlerがセットされているリクエスト、つまりは該当ディレクトリ以下の.phpファイルへのリクエストは権限分離された上で実行されるようになります。

また、PSHandlersディレクティブには複数のhandler名をスペース区切りで渡す事で、複数のhandlerを権限分離の対象にすることもできます。

是非是非、自身の環境に合わせてご活用下さい。