Moai+Easter 上級マニュアル

Moai Manual Advanced Manual Annoucement FAQ
ご案内 Moaiエンジン CustomBoyエンジン HowToコンパイル Moai CGI Developers
Overview and Tutorial Cookie Hints PostVars Hints Fingerprint Hints Snippet Hints Futaba Note

はじめに

ここではCustomBoyが仮想化するCookie値のHint情報を列挙する.
(主にふたばちゃんねるの例を題材とする).


目次



Cookie posttime (Category: futaba)

この値はfutaba.phpに初アクセスした時間(およびそれに類した値)である.
現状ではカタログに初めてアクセスするか、または初めてレス投稿した際に設定されるようである.
あるいは /bin/cachemt7.php にアクセスしたときにそれに類した値が生成される形となる.
一旦設定されると、CookieおよびBrowser CacheおよびlocalStorage これら全てを消去しない限り同じ値が残り続ける.
この値はPOST変数 pthb, pthc (pthd)とCookieのposttime値として送信される.

目次に戻る

Cookie __cfduid (Category: futaba 5ch)

この値はBBSに初アクセスしたときに未設定である場合は新たに設定される.
BBSが導入しているCloudflareが発行するものであると思われる.
一旦設定されると、Cookieを消去しない限り同じ値が残り続ける.
またBrowser等の環境を変えない限り、同様の値が再発行される可能性もある.
この値はCookieの__cfduid値としてBBSへも送信される.

目次に戻る

Cookie cxyl (Category: futaba)

この値はカタログのフォーマットを指定するために存在する.
これが示す内容の意味はカタログの「設定」画面から行える指定そのものである.

横のスレ個数 x 縦のスレ個数 x 各スレでの文字数 x 文字位置(0:下,1:右) x 画像サイズ(0から6までで0が最小で旧来の表示)

というフォーマットを持つ記述子となる.

デフォルトではこの値は指定されておらず、その場合futaba.phpは '14x6x4x0x0' という値が指定されたものとみなすようである.
基本的にはユーザが自由に設定するものであるからユーザ識別とは関係がないと思われる.

目次に戻る

Cookie namec (Category: futaba)

この値は最後のレスにおいて使用した「お名前欄」の内容を示す.
値は全角文字などを含む可能性があり、URL Encodingされる.
何のために使われるものかは不明であるが、コテ対策で導入したものである可能性もある.
いずれにせよ空値以外の値を設定していても何一つ良いことはないので、基本的には消去しておくことが望ましい.
futaba_send.myf の cookie_force において namec = [''] (空値)を指定しておくことをお勧めする.
(futaba_send.myfのデフォルトではそうなっている).

目次に戻る

Cookie pwdc (Category: futaba)

名前の由来は PassWorD Cookie と思われる.

この値は、レス投稿時のいわゆる「削除キー」に相当するものである.
ユーザが明示的に指定してもよいが、空にしておけば適当な削除キー値が自動的に割り当てられる.
このときCookieのpwdc変数にその値が格納され、レス投稿時においてはJavascriptを介してこの値がさらにPost変数pwdへセットされる.
通常は自動的に割り当てられた値をそのまま使えばよい.
ユーザ情報をリセットしたい場合は、Cookieのpwdc値を一旦空にしておくとよい.

目次に戻る

Cookie verifyc (Category: futaba)

このCookie変数は今となってはレアな変数の一つであり、大半の方は表示されないであろう.

この値は筆者の知る限り、現在では「時限式の規制」において使われているようである.
(かつては別の用途で使用されていたこともあったと記憶している).
時限式の規制とは、「何日の何時何分何秒よりレスが出来るようになります」といった旨のメッセージが表示される規制であり、基本的にはISPやIPベースで行われる広域規制の一種のようである.

このverifycは、ユーザがそのIPにおいて初めてレスする際に発行され、
おそらくその値の内容はそのときの時刻とIPアドレスの情報が暗号化されて格納されたものである.
そしてその表示の通り、その時刻からプラス何時間か経過した後にレスが可能になるといったものである.

また、この値をユーザが不用意に改変したりそもそもverifyc自体を消去すると、futaba.phpはそのような改変を検出するruleを持っており、 改変された値は破棄され、再びそのIPにおける「初めてのレス」とみなされて時刻の情報も初期化される.

例えば、「3時間後にレスが可能になる」といった表示がされて2時間が経過した場合を考えよう.
この時点で残り1時間であり、1時間経過後にレスが可能であるハズである.
しかしそこでverifycを不用意に加工したり削除したりして再びレス投稿を試みると、新しいverifycが発行され「3時間後にレスが可能になる」状態に初期化されるということである.

従って、router reset等で一旦IPアドレスを変えたらとりあえず古いverifycは消去し、次にそのIPでの「初めてのレス」で新しいverifycを発行させる.
その後はさらなる次のIP変更まではうっかりそのverifycを消さないように配慮する必要があるということになろう.

これは割と凝った規制であり、規制コレクター+マニアの筆者としては面白い部類の仕組みかと思うのだがいかがであろうか?

ちなみにこの実験において元のverifycをbackupしておき、一旦初期化された後に再び元の値を復元すると、残り1時間後にレスが可能になる状態に復元できるケースもあるようである.

目次に戻る

Unknown Cookie value (Category: futaba)

CustomCookieにおいて、一番右の本来「Hint」と表記されるべき位置に「Unknown」と表記されている変数が表示される場合がある.
これはCustomBoyが知らない、あるいは把握していない変数であることを意味する.
掲示板の仕様変更による新規変数の導入、あるいはある種の特別な規制にのみ発現するレアな変数などが存在する可能性があり、
そのようなCookie変数が検出された場合、この表示がなされる.

この「Unknown」表示がされた場合、現在5chでMoaiを紹介している某スレなどでその旨を作者に報告してもらえれば幸いである.
こういう情報は皆で共有することがとても大事である (´>ω・`).
その変数が出現する詳しいメカニズムと仕様の詳細が確認できれば CustomBoyをこれに対応させ、ドキュメントも配備することができる.

ユーザ情報を初期化したい場合は、この種のCookie変数の値をどう扱うべきであろうか?
大抵の場合、とりあえず一旦空にしておくと間違いはなかろう.
なぜなら誰でも一番初めは何もない状態なのだし、そうでなくとも少しでもセキュリティーに意識があるユーザなら、 Browserを閉じる際に全Cookieを削除する設定にしておくなどは、極めて自然で妥当なことであろう.


しかしながらCustomBoyではほとんどのCookie変数は削除されるものの、Cookie変数全体の無条件な消去は敢えて行わないようにしてある.
色々吟味を重ねた結果、これが自動的に削除するCookie変数はいかなる場合でも問題の発生し得ないことがわかっている変数群にとりあえずは限定してある.
例えば上記で述べたverifycは現状自動的には削除されないようにしてある.
大抵の場合、これで何ら問題ないと思うが、必要ならCustomCookieから手動でこれを消去していただきたい.

目次に戻る

This article was written by:
none image

K.Yakisoba.H

@znk project