HTTPレスポンスヘッダに改行コードが含まれている場合の動作について

ColdFusion 9.0.2, ColdFusion 10 または、セキュリティアップデートを適用した ColdFusion 8.0.x, 9.0.xの環境にて、ブラウザに対してHTTPレスポンスヘッダを送信する処理に改行コード(CRLF - %0D%0A)が含まれていると、改行コードが除外されます。

この動作は、HTTP レスポンス分割(HTTP Response Splitting)攻撃によるセキュリティのリスクの脅威の対策となっており、HTTPパラメーターやURLといったブラウザへのレスポンスヘッダの送信に含まれる項目に改行コードが付加されている場合に内部でそれを除去する動作となっています。

(参考)「ColdFusion 10 アプリケーションの開発」-『CRLF 攻撃』
http://help.adobe.com/ja_JP/ColdFusion/10.0/Developing/WSe61e35da8d3185183e145c0d1353e31f559-7ffb.html

上記のサイトで記載されているCFタグの他に、CFCOOKIEで指定するクッキー値やCFLOCATIONで指定する転送先のURLアドレスなども対象となります。運用中のアプリケーションにおいて、ブラウザに対してHTTPレスポンスヘッダを送信する値に改行コードが含む事が想定される場合は、改行コードが含まれない形に値を変更(Encrypt関数による値の暗号化等(*))を行って下さい。

 

(*)Encrypt関数で暗号化した際にも改行が入る場合があります。改行コードを別の文字に置き換えてデコード時に元の改行コードに戻すやり方や、暗号化のエンコードをHEXエンコードに変更(もしくは暗号化した値をさらにHEXエンコードで二重に暗号化する)など、HTTPレスポンスヘッダに含める値に改行コードが混入されないようにすることをお勧めします。また、暗号化すると元のデータよりも大きく(長く)なりますので、Cookieに値をセットする場合などはCookieサイズの上限を超えないように注意して下さい。

 

 


記事公開日:2012年10月26日
最終更新日:2013年01月10日


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.