トップ «前の日記(2004-12-13 [J]) 最新 次の日記(2004-12-20 [J])» 編集

Eroge RSS Checker 運営記録

Categories | メモ | 運営 | 感想 | 記号変更 | 雑記 | 雑文 | 思案

合計: 今日: 昨日:
2004年
12月
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

rss1.0

ここは、「Eroge RSS Checker」に関する運営の記録を書きとめておく場所です。第三者に説明する文体で書いていますが、大半は備忘録です。

  1. スクリプトを汎用化して公開する。---最終目標
  2. CSSを論理的に使う。---努力目標
  3. デザインを改善する。---努力目標
  4. 攻略の完全・不完全を出来る限り判別する。---努力目標
  5. 管理要員用のページの充実。---努力目標
  6. JANコードの入手先を探す。---躊躇中
  7. ブランドの複数登録。---大規模改修のとき
  8. 登録を簡潔にしつつ、marker登録を半自動化する。---暇なとき

2004-12-18 [J] Eroge RSS Checkerの壊し方

_ [運営]脆弱性の披露

PHPに複数の深刻な脆弱性、最新版へのアップグレードをというニュースが流れてきた。当然当サイトにも当てはまる。後で後悔しそうだが、「Eroge RSS Checker」の脆弱性についていくつか書いてみよう。

まず、プロキシによるIP偽装には無防備だ。Yes/No方式の決定システムはIPをチェックしている。したがって、プリキシランチャーなどを使えば容易に不正な結果を得る事が出来る。これに対する対抗手段はないと思われる。例えば、クッキーを食べさせ、クッキーが存在しているパソコンからは同じ投票を

受けないようにする。だが、クッキーを拒否する設定にしている場合は無意味。ならクッキーを拒否している場合は投票出来なくすればいいのだが・・・元々クッキーを使いたくないし、手元にあるデータなので偽装されることは目に見えている。だから、作業を面倒に、リロード対策をしっかりとするしかない。

それで、この問題は一応対応しているつもりだ。

さて、次の問題は、CSV登録に関わるもの。CSVを判断するにはどうしたらいいのだろうか。その答えは、CSVとは何かという答えと同じものだ。カンマによって区切られ、改行を1まとまりとする形式だ。他にダブルクオーテイションで囲む場合もある。他にルールはない。

例えば長い文章があり、見やすいように改行していたとする。で、カンマを半角で書いていたら、それはもうCSVとして認識される。極端な例だとカンマが一つもなくとも、改行が頻繁にあれば、1項目のデータの束として認識される。要するにだ、CSVかどうか判断するのは不可能だ。

で、取っている対応というのは、5行なければいけないというルール。要するに2列目にカンマが4つなければ違うと判断する。その上でアドレスが登録サイト内でなければ登録できない。登録から3日以上経ってからしか使用できない。これらどれかの制限がなければ、無限にくずデータを

取得し続ける事になる。ただ、全てのサイトを確認したわけではない。もし仮にこの条件が揃ったページがあったとすると悪意を持った第三者に悪用される。という穴がある。

一定期間後IDを確定するシステムも問題がある。もし仮に悪意を持ったものが一人いたなら永遠に確定しない。3日経つ前にいい加減な処理をすればいいのだ。なんたる脆弱性。

もっとも単純な方法のひとつにサイト登録をして、巡回先のページを重いページにするというのがある。何サイトも一気に登録し、対象ページを数百MBの巨大なページにでもすれば読み込みだけでタイムアウトになり、その後の処理が中断されかねない。仮に出来たとしてもデータベースのデータ量は膨大で

正規表現を行うのに時間が掛かりすぎる。それが数サイトあればアウトだ。

他にも過負荷を与えたり、とあるphpを外部読み込みしてパスワードをハッキングしたり(出来ない事を一応確認)、アドレスのパラメータをいじりデータベースを破壊したり、諸々可能性ではあるが問題は多い。少なくとも悪意をもたれると非常に困るとっても困る、だからやらないでね、本当にやっては駄目(ある意味反語)。

お名前:
E-mail:
コメント: