- PR -

ASP.NETでの閲覧者情報

投稿者投稿内容
小僧
大ベテラン
会議室デビュー日: 2005/06/24
投稿数: 122
投稿日時: 2005-07-26 14:48
迦陵頻伽様へ
※ 揚げ足とっている訳ではないんですけど、
  こういうのもありますよ、っていう事で。

>・どれをダウンロードするかはユーザの目でないと確認できない
>との事からURLの一覧だけではユーザ全員が必要の無いファイルまで
>全部ダウンロードすることにはならないか?との考えから
>URLリストだけのテキストファイルでは無いと考えました。
じゃ、例えばエクセルで
○○ファイル http://XXX.zip
××ファイル http://YYY.zip
△△ファイル http://YYY.zip
っていう感じのファイルがエンドユーザに配布され、
そこから個人で必要な URL をコピー & ペーストして DL する、という可能性は?
もちろん、エクセルファイルなので「ファイル名の検索」も可能!

いや、そんな訳はないんですよ。ASP.NET って言っているし、
既にシステムがあるって言っていますから。
が、あくまで「推測」な訳で、そういう意味では
ホントの所は誰も DAI 様しか分からない訳で。

賢い人が時間をかけて話し合っているのに解決策が出てこない、っていう事は
このような「前提条件」がそれぞれ違うので話がかみ合わないのでは?と思います。
なので、このような掲示板の場合、最初の投稿時点で過不足なく情報を記載しないと、
お互い不幸だなぁ、と思う訳で。
( 書いていて胸が痛いのはなんででしょうか?。。。 )

そういう意味では、迦陵頻伽様が書かれた
『IIS+ASP.NETでApacheのmod_limitipconnと同様の機能を持たせるには?』
という質問はピンポイントで、最初の投稿でこのようにすれば別の方向に進んだのでは
無いでしょうか?と思いますが。
( mod_limitipconn がなんだか良く分かっていないので的外れかもしれませんが )

別に回答でもなんでもなく、身分不相応な発言ですが、
ちょっと気になりましたので書かせて頂きました。

結局 DAI 様の問題は解決したのでしょうか?
ちと気になります。
それでは。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-26 19:49
以下、私なりに、今まで出てきている DAI さんの仕様をまとめました。このうち、私が最初に書いて欲しかったと思うものを斜体、最初の投稿にあったものを太字にします。
コード:
仕様
1.資料など Web からファイルをダウンロードする
	1.1.資料などについて
		1.1.1.資料がないとその日の仕事が始められない
		1.1.2.資料の必要/不必要は人間が判断(パターン化不可)
		1.1.3.仕事あたり、〜1000件
		1.1.4.ファイルあたり、〜10分
		1.1.5.現在『1ファイルずつ DL する』規則
			1.1.5.1.実際には DL ツールでまとめてダウンロード
				1.1.5.1.1.このため、大量のトラフィックが発生

	1.2.正確なダウンロード数をカウント
		1.2.1.誰が、どのファイルを、何時、累積何回ダウンロードしたか
			1.2.1.1.キャンセルした場合はアンカウント
			1.2.1.2.WindowsUpdate でできているから可能だろう

	1.2.個人が同時にダウンロードできる数を制限
		1.2.1.mod_limitipconn のようなもの
			1.2.1.1.プロクシはリストアップしてアクセスを禁止する
			1.2.1.2.リスト漏れプロクシ経由は同一人物として扱う

2.各ページを閲覧している人数を正確に把握したい
	2.1.閲覧者はログイン手順を取らない
	2.2.CGI で『簡単に』解決できた

3.ASP.NET で行う
	3.1.ASP.NET だけにこだわらない
		3.1.1.ActiveX は使わない(調査時間不足の為)
		3.1.2.IE-host App. も使わない(ページは HTML だけを使う)
		3.1.3.ISAPI も使わない(調査時間不足のため)
		3.1.4.調査については、コマンドラインなどが使えないか
			3.1.4.1.NETSTAT などを検討中

技術背景
	HTTP の仕様は知らない(複数のやりとりより判断)
	ASP.NET のセッション ID 発行部分を Hack できる
	ISAPI については詳しい人がいないので、すぐには検証できない
	2.2について、CGI(言語不明)を解析し、ASP.NET に応用することができる
	ActiveX の開発はできない(今回の件の期間的、予算的な問題による)
	WindowsUpdate の元になっている技術は知らない(客先の言葉を受け入れていることより判断)

仕様背景
	2次、3次開発
	1.2は正確に知りたい
	2は雑になってもかまわない


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-07-26 19:49
引用:

私が知りたかったのは、単純に<a href="リンク先ファイル名">ダウンロード</a>
といったリンクの羅列だけが表示されるような場合でも、
セキュリティ的になにか問題があるのだろうか?という疑問です。


 ご指摘のように『ASP.NETの部分というよりOSなどそういった部分になる』でしょう。しかし、です。売るのは ASP.NET で構築したアプリケーションシステムのみ、なのでしょうか。
 …ああ、パッケージ販売とかだと、そうなるのか。すみません、私はハードウェア込みのシステム構築しかやったことがないので、セキュリティ対策は OS なども込みなんです。ハードウェアまでひっくるめて、ひとつの商品として扱っていたので、省略時解釈で全部込み込みです。
 OS や IIS がすでにあるもので、その上に乗っけるものだから、乗っかるものの安全だけ保証すればよいのであれば、そういう認識も"有り"ですかね???


 それで、まとめてしまいますが、私はパケット解析を行ってどうこうというのは、あまり信頼できないと思います。結局、非同期になっちゃいますから、「ズレ」がでてしまいます。この「ズレ」が許容範囲かどうかを検証しなければなりません。
 また、キャプチャリングしているマシンの負荷が高くなると、取りこぼしが出てきます。WinPCap を使っていますが、これはサンプリング時間を設定できるので、短くすれば高負荷、長くすれば取りこぼしが発生します。ま、バッファを大きくすれば、って話もあるのですが、結局いたちごっこなわけで。


 また、どうも、セキュリティチェックを外部の会社にお願いした、というのが気になっていまして。もし、自社内の閉じた LAN で使うものであれば、そんなことをする必要はないのでは?
 また、作業員がプロクシを通して接続というのも気になっています。自社内の Web サーバにプロクシ、つまり外部 LAN 経由でアクセス?もっとも、Web サーバのインフラを自社で用意していない、レンタルサーバなら、プロクシ経由のアクセスというのもわかるのですが、そうするとトラフィックの計測なんてできないわけですから、自前で用意していると考えられます。

 この2つのことから、外勤先、または遠隔地にいる社員が、一般回線経由でアクセスしているのではないか、と考えるのですけど、どうなのでしょう?

 で、この仮定が正しいとすると、HTTPS で行っている通信を、パケット解析によって、どのファイルにアクセスしているか、わかるのでしょうか?ただの HTTP でアクセスしているなら、侵入こそ許していないのでしょうが、『ちなみに、このファイルが無いと仕事になりません』と言うようなファイルを、垂れ流しして良いのでしょうか?
 いや、漏れたからといって問題になるような情報じゃない、とも書いてありますけど。。。

_________________
浮嶋
会議室デビュー日: 2004/01/08
投稿数: 14
投稿日時: 2005-07-27 09:19
失礼いたします。
このスレッドを興味深く拝見させて頂いておりました。

さて、DAIさんが求めている処理を実装するときに、
私ならどうするかなぁ。。と考えていたのですが、なかなか難しいですねw


で、私なら・・・という前提ですが参考までに。

ファイル転送の部分はTCPサーバーとして実装しちゃうと思います。
IISで実装されていないもしくは、処理しにくいのであれば、
その部分は切り出して、その機能に特化したサーバーを立てちゃいますね。

Webサーバーを一から作れといわれると辛いものがありますが、
要求に応じてファイルを条件に応じて返すぐらいのものであれば、
そこまで工数はかからないかと・・・。
少なくともパケットキャプチャによる処理を実装するよりは楽だと思います。

もちろんHTTPのHEADER部やBODY部に変換して返すという作業も必要だと
思いますが、ログを採ったり、制限を加えることはいくらでもできますよね。

もちろん認証はどうするの?とかセキュリティの面は考慮する必要は
あるでしょうが。


この場合でも、あくまでサーバー側で送信したことはコミットできますが、
クライアントから、完全に受信したという応答は取れないので、
確実とはいきませんが。


もし少しでも確実性を上げたいなら、クライアント側でActiveXなどで実装するのが
一番だと思います。


まとをえない発言ですが、私なら・・・ということでご容赦ください。
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2005-08-03 02:23
引用:

DAIさんの書き込み (2005-07-21 20:35) より:
2つだろうと3つだろうと複数のブラウザを立ち上げた場合でも同一のセッションIDを
発行させることは既に技術的に解決しています。



結局これはどうやって実現してるのか気になって悶々としているのは私だけでしょうか?
ASP.NETが返しているSession_IDってなにげに明示的にいじれるんでしたっけ...?


#Tech-Ed yokohama参加中
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-08-04 05:15
引用:

結局これはどうやって実現してるのか気になって悶々としているのは私だけでしょうか?
ASP.NETが返しているSession_IDってなにげに明示的にいじれるんでしたっけ...?


 いえ、私も。。。
 MSDN を見る限り、HttpSessionState クラスや、Page クラスからはさわれなさそうです。IIS のレベルまで落とせば、あるいは何とかなるのかも。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-08-04 11:33
がるでふ。
引用:

ロンロンさんの書き込み (2005-08-03 02:23) より:
引用:

DAIさんの書き込み (2005-07-21 20:35) より:
2つだろうと3つだろうと複数のブラウザを立ち上げた場合でも同一のセッションIDを
発行させることは既に技術的に解決しています。



結局これはどうやって実現してるのか気になって悶々としているのは私だけでしょうか?
ASP.NETが返しているSession_IDってなにげに明示的にいじれるんでしたっけ...?


んっと。「セッションID」とは書いてあっても「Session_ID」とは
書いていないので、独自実装なのでわ? :-P
独自実装ならどうとでもなりますし。
# 前述したとおり、予想としてはクライアントIPからの作成かな?
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2005-08-05 01:33
引用:

独自実装なのでわ?


ああ結局そういう感じですか。
単に興味本位で自分の仕事で使おうなんて気は全く無いんですが、
DAI氏のかっちょいい実装ソースコード貼付をずっと待っていたんですが、、、もう見てなさそうですしね。

>>ダウンロード数はリンクをクリックした時点でカウントすると、
>>ダウロード途中にキャンセルなどを押して取り止めた場合、
>>正確ではないので駄目という事です。
しかし、あらためてこのスレを最初から読んでみるとなかなか凄まじい顧客要求ですね。
こんなお客さんにはキックあるのみ!(実際はIISのログから抽出で勘弁してください的に平身低頭)
無駄ageすみませんでした。でわでわ。

スキルアップ/キャリアアップ(JOB@IT)