Updated : January 2011
DekiWiki authtokenの有効性検証
Deki Wiki 8.08のソースコード(AuthBL.cs ValidateAuthToken)から判断すると以下の手順
(1)Null、空でないこと string.IsNullOrEmpty()
(2)形式が正しいこと authTokenRegex.Match()
(数字文字列)_(18桁の数字文字列)_(文字列)
(3)authtoken中のユーザIDが整数値であること uint.TryParse()
(2)の形式チェックで済んでいる
(4)ユーザIDからユーザ名が取り出せること UserDA.RetrieveById()
(5)authtoken中のタイムスタンプ(シリアル値)がlong整数値であること long.TryParse()
(2)の形式チェックで済んでいる
(6)authtokenのタイムスタンプがcookieの有効時間よりも古くないこと
有効期間7日以前のものは無効
(7)与えられたauthtokenのタイムスタンプを基に算出したauthtokenの値と同じであること
といったような感じ。