- - PR -
ASP.NETでの閲覧者情報
投稿者 | 投稿内容 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-07-22 06:09
私や他の方が指摘した問題点にたいして、全て「解決済み」とか「問題なし」と言う事はつまり後は実装するだけなんじゃないの?何が問題で掲示板に質問を投げたのか、まるで分からないのだけど・・・。
ダウンロードの完了を確実に知りたいなら、Windows Updateと同じようにActiveX使ってダウンロードの成功 or 失敗をサーバーに通知すればよいじゃない。 指定ファイルをダウンロードするようなページをASP.NETで組んで、同一IPアドレスからの2回目以降のダウンロード要求を拒絶すればよいじゃない。 #ちょっと検索してて思ったのだけど #既存の公開されているISAPIフィルタって以外に少ないんだね・・・ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 07:59
その通りです。 前にも書きましたがApacheでのmod_limitipconnと同等機能のものを どうやって実装するかが不明なのです。 仕様など色々と突っ込んで頂いたのですが、言われていることは 既に承知しており、ある程度の前提条件を設けたり技術的に解決させています。
それはそうなのですが、問題は時間と金です。 ActiveXを開発しないでも、いくつかの技術を組み合わせる事で同様機能が 実現可能ならば、時間もお金も掛からないで済みます。 出来れば、そういった別の方法が他には無いだろうか?という事です。
簡単に出来れば苦労したり質問はしていません。 また、こういった言葉が出てくるのは私が言っている仕様を 理解していないだけとしか思えませんが? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 09:15
んー・・・なんっつーかね。 ざっと見てみた限り、他人に説明する前に、自分で仕様というか問題点を理解出来ていないよーな気がする。 仕様を理解して、問題点をきっちり理解できてれば大抵「そこだけスポット」な質問が出てくるもんだし。 (で、「そこだけスポットな」問題点が分かればキーワードも浮かび上がってくるし、それを検索するなり調べれば・・・結局質問する必要は殆ど無くなるはずなんよ。) で、まぁ余計な事かもしれんけど
HTTPの仕様上「今現在」は不可能。 普通に作るとすると、ログイン制にして、その人が最後に見たページが分かる、って程度じゃないかなぁ?
ほんとに時間と金が問題なんなら、無責任な無料掲示板に質問投げかけてる時間なぞ無いんじゃないかと。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 10:09
この件、先程解決しました。 結論から言えば、管理者が確認画面を表示させた時点でのリアルタイムでの 閲覧者の取得は"可能"でした。(ログインの必要無し) これもユーザ側からCGIなどでは出来るとの意見から、 フリーでソース公開されているものを解析しました。 全く難しいことはしておらず、いとも簡単でした。
仕様や問題点を理解していない質問ではなく、 理解した上でどうにか解決できるようなアイデアを知りたいという書き込みである事を まずご理解下さい。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 10:27
@IT会議室トップの下のほうに
@IT会議室は双方向の情報交換のためのコミュニティです。 って書いてありますね。 ということで、 ・複数のブラウザを立ち上げた場合でも同一のセッションIDを発行させる方法 と ・管理者が確認画面を表示させた時点でのリアルタイムでの閲覧者の取得 の方法を教えてください。ぜひぜひ。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 10:48
どもです。がるです。
…んっと…どっちかっていうともう「後にほかの人が読むときに 混乱しないように」が主眼になってきてしまっておりますが。 一応、各所突っ込んでおきます。 …と、その前に。
なるほど〜。どうしても「HTTP」基準に考えてしまうので、このあたりは 割と(半意図的なのですが)意識からはずしてしまいますね(苦笑 で。本番です。
んっと。これって結局のところ ・あるアクセスにおいて「個人の特定を行う」 ・各個人の情報が正しくストックされている の2点が必要なのですが。
HTTPをもう少しちゃんと理解したほうがよいですね。あるいは 「理解したつもり」であるというフィルタをはずしたほうが :-P 「どこがどのように」かは、またこれから書きますが。 もっとも。そも
この時点で「HTTPの特性から外れた」事をやろうとしているわけなのですが。 # それが理解できていない時点でNG。
これは…もしかして「IPアドレスをベースにセッションIDを作る」んじゃ ないですか? だとすると…またえらく「物騒な」ものになりそうで(苦笑 「IPアドレスをベースにセッションIDを作る」ことが物騒である理由は わかりますか? そうではないとすると…同一にするためのKeyが見えないですねぇ。
mod_limitipconnって(まぁほかの方もかかれてますが) 「IPアドレスを基準に」制御するのですが? # まぁそれでいいというならいいのかな?
すごいですねぇ。 ・コンテンツを投げたら終了 するだけのHTTPで ・「現在」該当Pageを閲覧しているかどうか がわかるってあたりが。 # まぁJavaScriptでwindow.closeあたりのイベントとあわせて # 無理やり取得が出来ないとは言わない。重そうだけど。
多分実現はいとも簡単。で、考察が足りなくて抜けすぎて、 抜け道やら穴やらがたくさんあって「クラックもいとも簡単」。
これだけ多くの、言っちゃぁなんですが「ベテラン勢を含む」 方々(除く自分)がこれだけの苦言を呈しまくってる理由とか 原因とかをもうちょっと真剣に考えてみませんか? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 11:12
どもです。がるです。
To 一郎さんへ。です。 一応「前提条件をかなり限定する」ことで、再現できなくもないです。 問題は、少なくとも私が考察している方法だと仮定すると「穴が ありすぎて実用には適さない」のですが :-P
これは「IPアドレスをキーにして」セッションIDを発行すればOKです。 この場合、原則として ・同一PCであれば同一のIPであろう という予測がある程度までは成り立つので、「複数種類のブラウザ」で 「同一のセッションID」が可能になります。 問題点としては。 IP取得を「(何らかの手段で)ソケットから取得する」場合、 ・NAT及びNAPTでISPからIPが適宜変更されている ケースでは何の役にも立ちません(笑 次に、IPをkeyにってことは「セッションハイジャック」が極めて容易 です。 識別機能を「どの程度強化するか」って部分との考察になるので、 ここで短絡的にNGとはいえないのですが。 よっぽど慎重に考えないと危険であるってのは事実かと思います。
んっと。ようは「現在Pageを開いているか」が確定できればいいので。 ・セッションIDで個人が特定できる 事を前提に ・Page(ブラウザ)が閉じられる瞬間をJavaScriptでフックする ことで実現が出来ます。 いやまぁ問題点は山積しておりますが(笑 まず当然のことながら「正確な個人特定」が必須です。上述の 「IPによるセッションID」のような精度のない手段でこれをやると 誤差乱発になります :-P 続いて「JavaScript必須」です。何をかいわんや。 # 個人的には「"なくても正常に動く"状態」以外で使うあらゆる # JavaScirptに否定的です。 多分Active Xでも出来るんでしょうが…あれは本当に環境依存が ひどいので、個人的に苦手です。 # 歴史経緯的に穴が多いってのも個人的には苦手。 # そも、おいらIEなんて使ってないし :-P あとはやっぱり「偽装が容易」ってところでしょうか。 とまぁこんな感じで。 制限とか穴とか色々と大切なものを無視すれば、実現できないもの でもないです。 それが「実用に足るものなのか?」ってのはまた別問題として :-P 以上、半雑談チックなつれづれでした。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
投稿日時: 2005-07-22 20:13
DAI さん:
もし、「質問したことの答えだけが欲しい」のでしたら、申し訳ありません。私たちは少々お節介が過ぎます。他を当たってください。 甕星 さん、がるがる さんとも、他の投稿を見ている限り、問題を局所としてではなく、一歩引いて見ることができる方々です。 このうち、がるがる さんについては先日 OFF 会で直に話す機会がありました。本人はご謙遜なさっていますが、かなりの技術力をお持ちの方です。まず、平行して複数の仕事をこなせる方です。また、@IT 自分研究所のほうで、勝手に講座を開くなど、知識も経験も豊富です。 また、甕星 さんも MVP 表彰を受けていることや、MCP C# を取得されていることなどから、相当の知識と技術力をお持ちの方であると推測されます。 そういう方々が、「これこれの理由で無理だ」とおっしゃっているところを、「HTTPの特性上、特に問題になる仕様だとは思っていません」とか、「既に技術的に解決しています」「既に承知しており、ある程度の前提条件を設けたり技術的に解決させています」など、根拠を明示せずにおっしゃっているのは、訴求力に欠けると思います。 先にも申し上げたとおり、私どもは少々お節介が過ぎるようです。あなたが「解決させている」とする“根拠”を明確にご呈示願えませんか。私どもは、その“根拠”が、セキュリティ的に問題があると思っております。お節介と思われるでしょうが、セキュリティ的に問題がないか、検証させてください。 できる、できないには、段階があると思います。「1:まったく不可能」→「2:できないことはないが、穴だらけ」→「3:穴もなくできる」という段階です。失礼ですが、このうち2の段階で「解決させている」とおっしゃっていると判断しております。この状態でシステムを納めて、「Office氏事件」のようなことが発生すると、困るのは最終ユーザから DAI さんがお勤めの会社まで、すべてではないですか? さて、ここまではセキュリティの面で、今回のケースを考えてみました。次に、技術の面で考えてみたいと思います。
このお言葉と、
このお言葉が矛盾しています。これまでの「無理」という言葉より、mod_limitipconn と同等機能のものが存在しない、あるいは私どもが所在を知らないことは想像に難くないと思います。または、ソースコードも配布されているのですから、読み解けば同等のものを作ることも可能でしょう。ざっと見てみましたが、コメント込みでも260行ですから、そう難しいものではないでしょう。 また、このお言葉は、
とも矛盾するのです。あるソースコードは解析済み。であれば、mod_limitipconn も解析でるでしょう?また、私の知識では、セッション ID は ASP.NET 内部で割り振られます。これを外から制御することはできないと思います。しかし、同一のセッション ID を割り当てることを可能にしている。つまり、ASP.NET の内部をハックして、一部の動作を変更させている、と理解されます。それだけの技術力がおなりなら、mod_limitipconn 相当の機能を組み込むこと、ご希望の機能を持った ActiveX オブジェクトを作ることも、簡単にできるのではないかと思います。 _________________ |