- PR -

CSVファイルのセキュリティについて

投稿者投稿内容
未記入
会議室デビュー日: 2009/01/20
投稿数: 6
投稿日時: 2009-01-21 18:48
どっとねっとふぁんさんありがとうございます。

帳票を出力するソフト(ActiveX)の仕様の説明が足りなかったと思います。

帳票出力ボタンが押されたら、出力用のページに遷移して、
そのページ内のJavaScriptでそのActiveXを宣言して、
CSVファイルパスをそのオブジェクトに設定してあげて、帳票出力を実行する
といった仕様となっています。

こんな様な感じです。

<object classid="*********" id="TEST">
<script type="text/javascript">
...
...
 //CSVファイルパスの指定
 TEST.CsvFilePath = './csv/print.csv'
//印刷実行
TEST.exePrint
</script>


なので、CSVはファイルとして作成しなければなりません。。。
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2009-01-21 18:54
私の言っていたのは、

今は、年月日などでファイル名を作っていらっしゃるようですが、
それに、セッションID を付け加えてはどうかという事です。
(別にフォルダは作らなくても構いません)

セッションID を付け加えれば、ほとんどの場合、十分に複雑とみなされます。

おそらくは、権限の設定も何もいらないので、比較的
容易に実装できるのではないでしょうか?
未記入
会議室デビュー日: 2009/01/20
投稿数: 6
投稿日時: 2009-01-21 19:05
武史さんありがとうございます。

引用:

武史さんの書き込み (2009-01-21 18:54) より:
私の言っていたのは、

今は、年月日などでファイル名を作っていらっしゃるようですが、
それに、セッションID を付け加えてはどうかという事です。
(別にフォルダは作らなくても構いません)

セッションID を付け加えれば、ほとんどの場合、十分に複雑とみなされます。

おそらくは、権限の設定も何もいらないので、比較的
容易に実装できるのではないでしょうか?




そうですね。ただやはりファイル名が複雑でも公開されているというのが
気になってしまいます。一般的にはファイル名が複雑であればOKなのでしょうか?
検索エンジンが拾ったりはしないんでしょうか?

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2009-01-21 19:05
そのActiveXを利用した帳票出力ソフトの仕様がわからないのでなんともいえませんが、指定したファイル名でWebサーバにアクセスしてデータをとってくる、というタイプならそのURLにアクセスしたときに適切なCSVファイルの中身がとりだせればいいだけですよね。
それなら、サーバ上にCSVファイルを保存する必要はないと思います。
前に書いたような手段で可能なはずです。

もし、そのソフトがサーバ上でそのファイルを取り込んで動く、というようなものなら、CSVファイルはそもそもダウンロードできる必要はありませんよね。

その他にどうしてもサーバ上にファイルを保存し、そのうえでダウンロードできるようになっている必要がある、というパターンが思い浮かばないけど。。。
武史
ベテラン
会議室デビュー日: 2007/09/21
投稿数: 71
投稿日時: 2009-01-21 19:36
ほとんどの Web サービスは、セッションID を
知られると、盗聴どころか、ログインした人に
なりすまして、様々な操作を行えてしまいます。

そのため、セッションID は、通常は、サーバで
十分に複雑なものとして生成されます。


あとは、そのセッションID が他人にばれないように
細心の注意が必要になります。

例えば、セッションID を含むそのファイル名を
ローカルのディスクに保存するなんてのは、
簡単に思いつくNGの一つです。


そのような注意を払い、守る事ができれば、
検索エンジンにひっかかる事もありません。



それでも嫌であれば、ある程度、ちゃんと実装した方が
いいかと思います。

どっとねっとふぁんさんのおっしゃっているのが
正道で、そんなに複雑じゃないですよ?

例えば、、、

1.セッションID と、適当なファイル名(XXXX)のペアで、外部からアクセスできないフォルダに保存

2.csvdownload.asp?name=XXXX とかいうのを、CSV のファイル名としてクライアントに渡す。

3.csvdownload.asp では、ユーザを判断して、適切であれば、
  1で保存した csv ファイルを読み込んで、そのまま出力。

未記入
会議室デビュー日: 2009/01/20
投稿数: 6
投稿日時: 2009-01-21 19:55
どっとねっとふぁんさん、武史さん御返答ありがとうございます。
引用:

どっとねっとふぁんさんの書き込み (2009-01-21 13:08) より:

JavaScriptからはたとえばashxファイルを指定して、その結果としてWriteFileでCSVファイルを返せばいいんじゃ?
ashxファイルのなかでセッションによる認証を確認すればいいんですよね。

どっとねっとふぁんさんの書き込み (2009-01-21 19:05) より:

そのActiveXを利用した帳票出力ソフトの仕様がわからないのでなんともいえませんが、指定したファイル名でWebサーバにアクセスしてデータをとってくる、というタイプならそのURLにアクセスしたときに適切なCSVファイルの中身がとりだせればいいだけですよね。
それなら、サーバ上にCSVファイルを保存する必要はないと思います。
前に書いたような手段で可能なはずです。




ashxファイルで試したところ、うまく印刷されました!!!!
ashxというのを初めて聞いたので一つ勉強になりました。
もっとashxについて深く調べてみようかと思います。

あとは、帳票が数種類ある為、それごとにashxを作成しては無駄だと思うので、
CSVをアクセスできない場所に作り、ashxでそれを返すか、
セッションかなにかでCSVの内容を渡して返すようにします。

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