phpを勉強中の者です。
メールフォームから送信された内容を、サーバ上にcsvとして保管しておく事を考えています。
この場合に、送信された内容に顧客情報など重要な情報が含まれる想定なのですが、データベースではなくCSVとして保存しておくことにセキュリティリスクはありますでしょうか?
やはりCSVではなく、データベースに保存しておく方が安全と言えるでしょうか。
よろしくお願いします。
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
どちらもセキュリティという面では、突破されるとお終いという意味ではたいして違いはないです。
CSV でも、ファイルシステムによってアクセス権をコントロールできますし、データベースは、それ自体にセキュリティホールを抱えていることもありますし、SQLインジェクションのようなデータベース特有の攻撃方法もあります。
セキュリティ対策という意味では暗号化をしてください。
データベースだと暗号化の仕組みが用意されているものがあるので、多少は手間が省けるということはあるかもしれませんが、自分で暗号化の関数を呼び出すこともたいした手間ではありません。
http://php.net/manual/ja/refs.crypto.php
ファイルに保存する時は、ルートディレクトリより上に置くなど、ブラウザから見えないようにすればいいですね。データベースのほうが安全ということはありません。
不正アクセス対策入門の入門(萩原佳明著)翔泳社 を読むといいでしょう。
ありがとうございます。
入門の入門書、一度読んでみようと思います。
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
ありがとうございます。
2015/02/02 15:57:00ただ、CSVはそのままダウンロードして使いたいという要望があり、暗号化した状態でCSVに入れて置いておくのは使いづらいのではないかという疑問が残ります。。