ColdFusion 10 セキュリティ強化に伴う cfloginタグの挙動の違いについて

<cflogin>、<cfloginuser>タグを使用したログイン処理は、ColdFusion10ではよりセキュア性を高める改良が加えられました。ただ、その改良によって従来と動きが異なる場合があります。それは、同じログインアカウントで複数のPCや、あるいは複数のブラウザでログインした時の動作です。

ColdFusion 9までは、<cflogin>によるユーザーログイン処理において、同じログインアカウントで複数のPC、あるいは複数のブラウザで同時にログインする事が可能でした。ColdFusion10では同じログインアカウントでの複数同時ログインは制限されています。ですので、一つのログインアカウントを複数のユーザーで共有している場合などはColdFusion 10での動作に注意が必要です。

 

例えば、あるシステムで「tech」というユーザー名のログインアカウントがあった場合、社員Aがそのユーザー名でログインした後に、社員Bも同じユーザー名(「tech」)でログインを行ったとします。この場合、社員Bがログインを行ったタイミングで、同じユーザ名でログイン中の社員Aのログインが強制的に終了します。

この時の動作について、こちらで確認した限りでは、

  1. 社員Aが「tech」というユーザー名でログイン(<cfloginuser name="tech" password="xxxx" roles="xxxxxxx" >)を行っている
  2. 社員Bも同じ「tech」でログイン(<cfloginuser name="tech" ... >)を行った
  3. 社員Bはそのままログインが完了してシステムを利用できる
  4. 同じユーザー名でログインしていた社員Aのログインが無効になりシステムが利用できなくなります。

また、ログインが無効になった社員Aが、再びログイン画面を開くと、そのタイミングで後からログインした社員Bのログインも強制的に無効になる場合が(※)あります。

 

(※)
<cflogin>タグの処理で、未ログイン時の処理の中断を行うタイミングによって動作が違うようです。こちらで確認した限りでは、未ログイン時に<cflogin>~</cflogin>の範囲内で処理を中断させるプログラムコードの場合にこの動作が発生しました。

 

上記で記載した動きはColdFusion Administratorのログイン処理が参考になります。複数のブラウザを使って同じユーザー名(デフォルト設定でインストールした場合はadmin固定)でColdFusion Administratorにログインをしてみて下さい。上記の動きと同じような動作が確認できると思われます。
(※ColdFusion Administratorのソースコードは暗号化されていてプログラム内容を確認することができないので、あくまでも動作を目視した限りでの確認となりますが、、)

 

尚、この制限を以前のバージョンと同じ動きに戻すことができません。そのため、複数のユーザーでログインアカウントを使いまわすのを辞めるか、あるいは下記のColdFusion公式ブログのコメント21番に書かれているように<cfloginuser>のname属性にランダムな値を付加して、ColdFusionが同じユーザーとして処理をさせないにして下さい。
(参考) http://blogs.coldfusion.com/post.cfm/new-improved-cflogin

 

 

参考情報

 

 


記事公開日:2013年11月01日
最終更新日:2013年11月06日


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.