リリース(2003/11/24)
ユーザが入力したデータには、悪さをするスクリプトが混入している場合があります。それをそのまま表示してしまうと、何らかの問題が発生する場合があります。EZServlet2001ではそれらのHTML的にじゃまな文字をエスケープするための仕組みとして、フィルタを利用することができます。フィルタは、ブラウザからのパラメタを受け取るタイミングと、テンプレートに文字を出力するタイミングのいずれにも適用できます。ブラウザからしかデータの入り口が無い場合は、パラメタに対するフィルタでもよいかもしれませんが、一般的には、テンプレートに文字を出力するタイミングを推奨します。 設定例:(EZSanitizer処理後に、Text2Htmlの処理をする。) EZServlet.Filter.HTMLTemplateStringValue.hf1.Class=com.ngMAT.servlet.filter.EZSanitizer EZServlet.Filter.HTMLTemplateStringValue.hf2.Class=com.ngMAT.servlet.filter.Text2Html EZServlet.Filter.HTMLTemplateStringValue.hf2.Follows=hf1 @see com.ngMAT.servlet.EZServletConfig
一般的に、クッキー盗聴によるセッションのっとりを防ぐためには、セッションIDにsecureフラグをつける方法がありますが、現在市販のアプリケーションサーバの多くは、そのフラグを設定で固定的に指定するため、セッションIDにsecureフラグをつけると、セッションを利用するページは全てhttpsでアクセスしなければならなくなります。 しかし、全てのセッション利用ページをhttpsにすることは、多くの場合、あまり現実的ではないかもしれません。 EZServlet2001では必要に応じて、セッションに保持する一部のオブジェクトだけをセキュアに保護する仕組みを用意しています。
com.ngMAT.servlet.EZServletContextのsetPrivateSessionValue(java.lang.String, java.lang.Object)を使用して、オブジェクトをセッションに保持すると、secureフラグのセットされた、独自のプライベートセッションIDクッキーを発行します。そのオブジェクトをセッションから取得するには、getPrivateSessionValue(java.lang.String)を使用する必要があります。これらの機構で管理されたセッション中のオブジェクトは、例えセッションIDが盗聴されたとしても、プライベートセッションIDが無い限り、取り出すことができないため、安全に管理することができます。