データの格納方法について質問です。

phpを勉強中の者です。
メールフォームから送信された内容を、サーバ上にcsvとして保管しておく事を考えています。
この場合に、送信された内容に顧客情報など重要な情報が含まれる想定なのですが、データベースではなくCSVとして保存しておくことにセキュリティリスクはありますでしょうか?
やはりCSVではなく、データベースに保存しておく方が安全と言えるでしょうか。
よろしくお願いします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/02/02 16:00:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:yotaca No.3

回答回数427ベストアンサー獲得回数46

ポイント300pt

CSVはテキストファイルなので、何もしないとブラウザでそのまま見られてしまいます。サーバーの設定によりますが、とりあえずそのままアクセス出来ないのでDBの方が安全だと言えると思います。
 
うちの場合、それなりにコストは掛かりますが、DBはローカル内の他のサーバに置いたりしてます。
先に出て来たSQLインジェクションについても、対策方法はありますし監視等で対策してくれてるレンタルサーバー屋さんもありますが、安くはありません。
 
それよりも、通常PHPで書かれたプログラムだとCSVの保管場所や、DBのアカウントを直書きして公開エリアに放置している事がほとんどなので、こっちの方が危険だと思います。
FTPのアカウントハックできれば、それこそアクセスし放題ですね。多分こっちの方が緩いサーバーが多いです。
664のファイルを、共有サーバーで他のユーザーに書き換えられた話しも聞いた事があります。
 
やはり自信がないならそういった情報はサーバーに置かない方がいいですよ。こういう判決もでたらしいですし。
http://blog.tokumaru.org/2015/01/sql.html
http://matimura.cocolog-nifty.com/matimulog/2015/01/privacy-8cc8.html
http://www.softic.or.jp/semi/2014/5_141113/op.pdf

その他の回答2件)

id:gizmo5 No.1

回答回数504ベストアンサー獲得回数141

ポイント50pt

どちらもセキュリティという面では、突破されるとお終いという意味ではたいして違いはないです。
CSV でも、ファイルシステムによってアクセス権をコントロールできますし、データベースは、それ自体にセキュリティホールを抱えていることもありますし、SQLインジェクションのようなデータベース特有の攻撃方法もあります。

セキュリティ対策という意味では暗号化をしてください。
データベースだと暗号化の仕組みが用意されているものがあるので、多少は手間が省けるということはあるかもしれませんが、自分で暗号化の関数を呼び出すこともたいした手間ではありません。
http://php.net/manual/ja/refs.crypto.php

id:jin-bei

ありがとうございます。
ただ、CSVはそのままダウンロードして使いたいという要望があり、暗号化した状態でCSVに入れて置いておくのは使いづらいのではないかという疑問が残ります。。

2015/02/02 15:57:00
id:pogpi No.2

回答回数428ベストアンサー獲得回数59

ポイント50pt

ファイルに保存する時は、ルートディレクトリより上に置くなど、ブラウザから見えないようにすればいいですね。データベースのほうが安全ということはありません。

不正アクセス対策入門の入門(萩原佳明著)翔泳社 を読むといいでしょう。

id:jin-bei

ありがとうございます。
入門の入門書、一度読んでみようと思います。

2015/02/02 15:57:24
id:yotaca No.3

回答回数427ベストアンサー獲得回数46ここでベストアンサー

ポイント300pt

CSVはテキストファイルなので、何もしないとブラウザでそのまま見られてしまいます。サーバーの設定によりますが、とりあえずそのままアクセス出来ないのでDBの方が安全だと言えると思います。
 
うちの場合、それなりにコストは掛かりますが、DBはローカル内の他のサーバに置いたりしてます。
先に出て来たSQLインジェクションについても、対策方法はありますし監視等で対策してくれてるレンタルサーバー屋さんもありますが、安くはありません。
 
それよりも、通常PHPで書かれたプログラムだとCSVの保管場所や、DBのアカウントを直書きして公開エリアに放置している事がほとんどなので、こっちの方が危険だと思います。
FTPのアカウントハックできれば、それこそアクセスし放題ですね。多分こっちの方が緩いサーバーが多いです。
664のファイルを、共有サーバーで他のユーザーに書き換えられた話しも聞いた事があります。
 
やはり自信がないならそういった情報はサーバーに置かない方がいいですよ。こういう判決もでたらしいですし。
http://blog.tokumaru.org/2015/01/sql.html
http://matimura.cocolog-nifty.com/matimulog/2015/01/privacy-8cc8.html
http://www.softic.or.jp/semi/2014/5_141113/op.pdf

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません