noriyuruの日記: Apache-mod_uid
日記 by
noriyuru
ユーザトラッキング用のmod。http://www.lexa.ru/programs/mod-uid-eng.html
使い方は見ての通り。
mod_usertrackに代わるものとして開発されている。
使用時のポイントはUIDServiceディレクティブで、これによりサービスやマシンの区別をつけることが出来る。
発行するID番号はUIDServiceディレクティブで指定したサービス番号、発行時のUNIXタイム、クッキーを発行したプロセスのPID、プロセス内のシーケンスカウンター(24bit)とクッキーのバージョン番号(1byte分、値は現在2)をネットワークバイトオーダーで繋げた128bit(base64でエンコード)。
乱数が含まれないし、ハッシュもされない。この事はログからサービス番号を拾い出せる事を示す。また、データベースに入力するときに不要な部分を取り除く事が出来る。
例えば、ユーザ追跡にはサービス番号、サーバーチューニングが目的ならばPIDやシーケンスカウンター、ログの記録時間をこれから取ればapacheの出力する時間表記より記録用データへ簡単に変換できる。
乱数やハッシュが無い事によって偽りのクッキーをクライアントが送ってくるかもしれない。これを識別する方法はログ解析のスコープ範囲とクッキーの寿命の関係による。クッキーの寿命よりスコープのほうが広ければ詐称を防げる。クッキーの寿命よりスコープが狭ければ正常な応答もエラーとして扱ってしまうだろう。
ログでは\"%{uid_got}n\"、\"%{uid_set}n\"を使用してID発行、取得を記録する事が出来る。
幾つか本文より簡易訳
Why not mod_usertrack from the Apache distribution?
・mod_usertrackは発行IDがユニークである保証が無い。
・mod_usertrackは複数のサーバーでの使用を考慮していない。
・mod_usertrackはクッキー送信時のログが取れない。
・mod_usertrackはサービス番号を考慮しない。
TODO
1.様々なクッキーフォーマットへの対応。(必要なさそう)
2.マルチスレッド動作のアパッチやSMP時にはシーケンサー・インクリメントをミューテックスする必要があるらしい。
使い方は見ての通り。
mod_usertrackに代わるものとして開発されている。
使用時のポイントはUIDServiceディレクティブで、これによりサービスやマシンの区別をつけることが出来る。
発行するID番号はUIDServiceディレクティブで指定したサービス番号、発行時のUNIXタイム、クッキーを発行したプロセスのPID、プロセス内のシーケンスカウンター(24bit)とクッキーのバージョン番号(1byte分、値は現在2)をネットワークバイトオーダーで繋げた128bit(base64でエンコード)。
乱数が含まれないし、ハッシュもされない。この事はログからサービス番号を拾い出せる事を示す。また、データベースに入力するときに不要な部分を取り除く事が出来る。
例えば、ユーザ追跡にはサービス番号、サーバーチューニングが目的ならばPIDやシーケンスカウンター、ログの記録時間をこれから取ればapacheの出力する時間表記より記録用データへ簡単に変換できる。
乱数やハッシュが無い事によって偽りのクッキーをクライアントが送ってくるかもしれない。これを識別する方法はログ解析のスコープ範囲とクッキーの寿命の関係による。クッキーの寿命よりスコープのほうが広ければ詐称を防げる。クッキーの寿命よりスコープが狭ければ正常な応答もエラーとして扱ってしまうだろう。
ログでは\"%{uid_got}n\"、\"%{uid_set}n\"を使用してID発行、取得を記録する事が出来る。
幾つか本文より簡易訳
Why not mod_usertrack from the Apache distribution?
・mod_usertrackは発行IDがユニークである保証が無い。
・mod_usertrackは複数のサーバーでの使用を考慮していない。
・mod_usertrackはクッキー送信時のログが取れない。
・mod_usertrackはサービス番号を考慮しない。
TODO
1.様々なクッキーフォーマットへの対応。(必要なさそう)
2.マルチスレッド動作のアパッチやSMP時にはシーケンサー・インクリメントをミューテックスする必要があるらしい。