@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

サーバ上のCSVファイルについて

投稿者投稿内容
まさお
常連さん
会議室デビュー日: 2007/11/06
投稿数: 38
投稿日時: 2007-12-19 11:31
ASPサービス上で、画面上のデータ(個人情報)をCSVファイルにて出力しようと思っています。(クライアント側で必要なため)
CSVファイルにて出力することはできるのですが、外部のPCからもURLを入力すれば閲覧することができてしまいます。(http://〜/***.csv)
これを防ぐには、証明書の発行以外には防ぐことはできないのでしょうか?
サーバOS:Windows 2003 Server
開発環境:VS2003 (VB.NET)

また、一般的なWEBアプリケーションやASPサービスは全てSSL通信で行っているもんなのでしょうか?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2007-12-19 11:50
引用:
これを防ぐには、証明書の発行以外には防ぐことはできないのでしょうか?

私が誤解していなければ、証明書を発行したところで防げないと思います。
認証をかければいいんじゃないですかね。

引用:
また、一般的なWEBアプリケーションやASPサービスは全てSSL通信で行っているもんなのでしょうか?

「全て」かといえばそうではないと思います。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-19 11:54
まさおさんの書かれている”クライアント側”と”外部のPC”の違いはなんでしょう?
これがはっきりしないと、どう隠せばいいかというアドバイスもしずらいです。

一般的に見られなくする方法としては、csvを外部から見れない場所に作成して、
見るときはサーバサイドの処理を起動して、その処理の中で作成したファイルを読んで、
レスポンスを返すということをします。
サーバサイドの処理の中で、見てよい。よくない。という切り分けをおこなった上で
csvをクライアントサイドに返すようにすればいいでしょう。
csvをファイルとして作成しないで、全てサーバサイドのオンメモリでやってしまうとい
う方法もあります。

レスポンスで返す方法もアドバイスできればいいのでしょうがVBでは私はわかりません。
まさお
常連さん
会議室デビュー日: 2007/11/06
投稿数: 38
投稿日時: 2007-12-19 12:51
べるさんへ
確かに発行だけでは防げないですね。発行した上で、サーバにて認証をする必要がありますね。

progmanさんへ
クライアント側はID/パスワードをログインしてボタンを押してCSVを開くのに対し、
外部のPCっていうのは、URLを入力して(http://〜/***.csv)CSVを開くということです。

CSVファイルを外部から見れない場所に作成して、見る時にその作成したファイルを読み込んで返すというのを、VBでのやり方はどうすればよいのでしょうか?
わかる方がいれば是非教えてください。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-12-19 13:51
httpサーバのディレクトリの認証がいいのかもしれません。

IISを使われてるのではとおもいますが、IIS、認証、パスワード、ユーザ名
などで検索してみてはどうでしょう。
GENZO
大ベテラン
会議室デビュー日: 2003/11/26
投稿数: 111
お住まい・勤務地: 名古屋
投稿日時: 2007-12-19 13:57
引用:

まさおさんの書き込み (2007-12-19 12:51) より:
CSVファイルを外部から見れない場所に作成して、見る時にその作成したファイルを読み込んで返すというのを、VBでのやり方はどうすればよいのでしょうか?
わかる方がいれば是非教えてください。



ファイルの出力はFileStreamなどで、たファイルをクライアントに返すのは、Response.WriteFileでどうでしょう?
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2007-12-19 14:09
会話の流れがすごくずれている気がするのですが。。

まさおさんは、認証を使う方向で進んでますが、
最初の投稿の仕様を見る限り、

そのCSVファイルは認証でアクセス制御する必要がないように思われます。
ましてや、個人情報ですから。。

まず、CSVファイルをWebサーバ経由でアクセスする必要があるのかどうかを
見極めるべきだと思います。

↑これは特殊な場合だと思います。

通常は、progmanさんが最初におっしゃっていたように、
外部からWebサーバ経由でアクセスできないディレクトリに置きます。

つまり、/www/html とかに置かないということです。
(UNIXの表現ですみません。どなたかフォローをお願いします)

これも progmanさんが書かれていましたが、
サーバサイドのプログラムなら、公開ディレクトリに置かなくてもアクセス
できます。

PerlでもPHPでもJavaでもそうします。

また、一般的なWEBアプリケーションやASPサービスは全てSSL通信で行っている
もんではないと思います。

個人情報やクレジットカード番号などを送受信する必要があるときのみSSLを
使うのが一般的ではないでしょうか。

インターネット・ショップなどで言えば、カートに商品を入れるまでは、
httpで、決済画面に移るときに、SSLにするのが一般的かと思います。

まさお
常連さん
会議室デビュー日: 2007/11/06
投稿数: 38
投稿日時: 2007-12-19 16:35
私はなるべく認証を使わない方向で行きたいのですが。。。
CSVファイルを外部から見れないフォルダに作成し、
GENZOさんの言われたResponse.WriteFileにてCSVファイルをダウンロードしてもらう形にしようと思います。
様々なご意見ありがとうございました。

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