人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: jin-bei
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● gizmo5
●50ポイント

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

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


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

2 ● POGPI
●50ポイント

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

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


jin-beiさんのコメント
ありがとうございます。 入門の入門書、一度読んでみようと思います。

3 ● よたか
●300ポイント ベストアンサー

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

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ