2010-09-16(木) [長年日記]
■ セッションの「適切な制限時間」というものはあるのだろうか?
先月公示になった新しいWebアクセシビリティに関するJIS X8341-3には「調整可能な制限時間」という達成基準があって(JISは非公開なので互換性のあるWGAC2.0 Understandingの邦訳を貼っておく)、非常におおざっぱにまとめると:
制限時間のあるコンテンツでは、
- 利用者が制限を解除できるか
- もしくは10倍に延長できるか
- さもなくば最初から20時間以上に設定
せよ。
というものだ*1。
制限時間つき入力フォームを持つようなWebサイトが、これを受けてJIS適合を目指そうと思ったら、制限解除ないし延長の仕組みを作らなければならない。20時間なんて長すぎてセキュリティ的に論外だ。なんだか不条理な基準だよなぁ。
……と思っていたのだが、よくよく考えると、そもそもいま設けている制限時間には、はたして明確な理由があるのだろうか。いろいろ調べてみても、セッション・ハイジャックを防止するためにセッションの持続時間は適切な長さにしましょうという記述は見かけても、「適切」について述べられた資料は見つけられなかった。セッションID生成にまともなハッシュ関数を使っていればブルートフォースアタックの危険は考えなくていいし(少なくとも20時間あれば十分だ)、その他のアタックに対しては時間よりも別の要因の方が大きいだろう。
Twitterでこの疑問を漏らしてみたけど、反応はいっさいなかったので(followerにはWeb業界人が多いはずなのだが)、おそらくみんな「適切」じゃなくて「適当」に決めてるんじゃないかなーと思う。だったら、JIS適合しようとするならプログラムや設定ファイルに書かれている「1」(時間)を単純に「20」に書き換えるだけで対応完了じゃん。それで何か問題ある?*2
上記はフォームへの入力のような場面を想定したものだけど、他にもWeb上における制限時間的なものといえばログイン・セッションもやはり不可解なものが多い。一定時間ログインしないと切れるというのがメジャーな方式だが、他にもセッション数を制限したり(ニコ動は1セッション*3、Wassrは3セッション?)色々あるが、その制限にちゃんとした根拠があるのかなぁ、といつも不思議に思う。
一方でAmazonやTwitterのようにひとたびログインすればずっとセッションが維持されるサービスもあって、こういうところは大事なとき(商品の購入や個人情報の参照・変更)だけ再度パスワードの入力を求められる。個人的にはこの方式の方が他に比べてユーザビリティも高く、おまけにフィッシングの危険性も低下するのでセキュリティ的にもいいと思うんだけど。なんでいつまでも安直な制限時間方式が蔓延してるんだろうね。
2010-09-14(火) [長年日記]
■ 気がつくと、みんな無線になっていた
昨日からメインPCの調子が悪くて、ネットワークがめちゃめちゃ遅い。メールくらいは読めるけど、動画なんてまず無理。数千bpsくらいしか出てない感じ。何が困るって、ニコ動が見られないのは困る!
他のマシン(Desireとか)ではスムーズなので、ネットワークのせいではなさそう。で、最初にWindowsを疑って、リブートかけたり、いったん電源を落として(お祈りをしてから)再投入してみたり。でもダメ。これはもしかして、NICが逝ったか?
で、確認のため筐体を開けてみる前に、ルータとPCの間にはスイッチングハブが挟まっていることを思い出し、触ってみたらなんだかずいぶん熱かったので、LANケーブルを直接ルータに入れてみたら復活した。なんと、ハブが原因だったか。
そう言えばこれを買ったのは10年以上まえだったような? もしかすると15年くらいかも。この夏の暑さでとうとう寿命が来たのかもなぁ。ソリッドステートで可動部分がないから、永遠に使えると思い込んでいたけど、そりゃいつかは寿命も来るか。とかいいつつ、復活するかもしれないのでとりあえず電源だけ抜いて冷ましているんだけど。
それにしてもこのハブ、メインPCを含めて4本のLANケーブルが刺さってたんだけど、他の2本はすでに使わなくなっていた(残る1本はルータへ)。いずれも、いつの間にか無線LANに変わっていたのだった。こないだ買ったネットワークプリンタが無線LAN対応してたのが大きい。
この家を建てるとき、各部屋にCAT5のLANケーブルを這わせたのだけど、けっきょく今それを使っているのは寝室のFONルータだけで、他はもうどの部屋でも使われてない。いずれも無線LANになってしまった。まさかこんなに早く有線LANが不要になるときが来るとはなぁ。というか、プリンタはおろかデジカメまで無線になるなんて想像だにしていなかったよ。
といいつつ、動画を早く落とせるからという理由で、メインPCはもうしばらく有線のままなのだけど(100Mbpsのハブを使っておいて何を言うかという感じだが)。新しいハブを買うかどうかは考えどころだ。
◆ zunda [可動部分がなくても電解コンデンサは劣化するかもですね。]
◆ 秋月大好き [電源アダプタがだめになってることが多いですね。 zundaさんが書いてるとおり電解コンデンサがやられて 正常な電圧を..]
◆ ただただし [そうですねぇ。やっぱ騙し騙し使わずに新しいのを買った方がいいなぁ。まぁ、コレガにしては長持ちしたので、ヨシとします。..]
◆ b-wind [ネットワーク屋さんとしてはHUBはちょっと頑張ってでもいいもの使って欲しいですねぇ。 トラブったときに一番分かりにく..]
◆ ただただし [たとえcoregaでも、数千円のスイッチングハブが10年間絶え間なく稼働していたんだから、家庭向けとしては十分な品質..]
◆ b-wind [確かに10年前のコレガは良い製品もあったんですが…。 当時と今とじゃ会社も製品もまるで別物である事には気をつけて欲し..]
2010-09-13(月) [長年日記]
■ 9784048687157
翻訳者の角正典(aka kdmsnr)さんから献本いただいた。なんでも刊行と同時にtDiaryの主要開発者に配られたようで、ありがたいことです。これは(たぶん)tDiaryが彼がこの世界に飛び込んだきっかけのひとつになったことへの感謝の意なんだろうとは思うが、裏の理由はtDiaryもまともなメタプログラミングをしろやというメッセージだろう。まったくだ!
tDiaryは約10年前、本書でいうところの「Javaのような」コードから出発していながら、随所でevalしまくるという、なんというか「ちょうどいい中間の状態」がないものだから、拡張しづらいはデバッグが難しいわで、なかなか厄介なレガシーコードになっている。そんなソフトウェアのメンテナが本書を読むと、メタプログラミングを使ってコードを全面的に書き換えたくなることと間違いなしである。
ともかく、読み始めると他のことに手がつかなるほど面白いものだから、自重しながらチビチビ読むのに苦労したほどである。
メタプログラミングは本書の帯*1で「魔術」と評されるほどトリッキーな技術なので、Rubyの初心者にはさすがにオススメできないが、かといって熟練者だけが読み下せるシロモノというわけでもない。基礎の基礎から懇切丁寧に説明してくれるので、正直「こんなに易しいならもっと積極的に使うんだった!」と後悔するほどだ。Rubyの文法がひととおり身についたら、次に手にとるべきなのは本書かも知れない。いや、大げさじゃなく。
翻訳文も読みやすいし、お得意のネットジャーゴンが散りばめられていて、実に楽しい*2。以前「アジャイルレトロスペクティブズ」で指摘したような思い切りの悪さはもうないね。
ともかく、このテクニックを使って何か書きたくてしょうがなくなるので、何か題材を手元に用意してから読むのが吉だ。tDiaryは(まだテストがないので)その題材にするにはもう少し待たなければいけないから、「パラボラアンテナ」をリニューアルしようと思って適当にでっちあげたCMS「REGO」に、もうちょっと魔術らしい魔術を使ってみようかな(こっちもテストないけど←えっ)。
9784048687157
◆ yasuyuki [> 複数アカウントを取れば回避できるのであんまり意味がない 無料アカウントならそのとおりなのですが、プレミアムアカウ..]
◆ shiro [ログインセッションならアカウント数で上限が決まりますが、トランジェントなセッション (e.g. ログイン無しでステー..]
◆ ただただし [> yasuyuki セッション制限ってプレミアム導入してからだっけ? いずれにしてもその懸念は他の有料サービスにも..]
◆ hb [一般的なWebサイトではなくイントラの業務システムでの経験なので,ちょっとずれてコメントかもしれませんが,セッション..]
◆ ただただし [ミドルウェアのデフォルト値! それは実にありそうですw ちなみにアクセシビリティにイントラかどうかは(本質的には)無..]