PHPでサイトを作成しています。

SSLをサイトに取り組むことによって入力されたサイトの情報を安全にデータベースへ登録することができると思うのですが、登録されたデータベースの情報を守るのにSSLだけでは不十分でしょうか。
メールフォームのデータをSSLでデータベースへ登録し保存したいと検討中です。
ですが、その情報を抜き取られないかとても不安です。
具体的にやっている対処方法などあれば教えていただきたいです。(素人でもできるものであれば・・)
お願いいたします。

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

ベストアンサー

id:y-kawaz No.3

回答回数1422ベストアンサー獲得回数226

ポイント18pt

SSLはあくまでユーザとサーバ間の通信路の安全を保証するものであって、通信路での盗聴や改ざんや詐称を防ぐもので、サーバ上のデータを守るものではありません。

  1. まずサーバ上のデータをWEBで閲覧できる場所(ディレクトリ)以下に置かないこと。(CSV等で保存してWEBから丸見えになる事例は多々あります)
  2. 管理画面や確認画面などがあるなら、XSSやSQLインジェクション等の脆弱性が無いよう適切に実装すること。
  3. サーバやストレージの物理的な盗難の可能性も考えるのであれば鍵をかけたり入室管理された場所への設置を検討する。
  4. 万が一物理盗難やSQLインジェクション等によって生データが漏れてしまった場合を考えるなら保存するデータは暗号化しておく。
  5. メールフォームとのことなのでおそらく管理者にメールが飛ぶと思われますが、メールは基本暗号化などされていないのでそちらのセキュリティも考える必要があります。

色々ありますが、とりあえず上記の1と2に関しては最低限必要だと思います。

id:aiomock

ご回答ありがとうございます。

2010/05/24 14:44:20

その他の回答5件)

id:dk19810313 No.1

回答回数36ベストアンサー獲得回数6

ポイント19pt

http://e-words.jp/w/SSL.html

SSLはネットワークの途中経路を暗号化通信する事で、安全にデータの送受信ができるものであって、

データベースの情報を守るのはSSLではないですね。


通信経路よりもサーバに不正侵入されないようにする、とか、

扱うPCへも適切にアクセス制限を施す、データを持ち出されないようにする、

といった所まで気を使う必要があるかと思います。

id:aiomock

ご回答ありがとうございます。

2010/05/24 14:43:34
id:Committeeman No.2

回答回数153ベストアンサー獲得回数19

ポイント19pt

レンタルサーバで不特定多数を相手にする場合にできること/すべきこと

(1)SSLで通信内容の傍受を難しくする

(2)データベースへの保存は暗号化して解読を難しくする

MySQLのENCODE関数を使用して暗号化

http://allabout.co.jp/internet/database/closeup/CU20070208A/inde...

MySQL :: MySQL 5.1 リファレンスマニュアル :: 11.10.2 暗号化関数と圧縮関数

http://dev.mysql.com/doc/refman/5.1/ja/encryption-functions.html


特定多数であれば接続回線経路を限定するという手も併用したりするがよほどの場合である

いずれにしてもプログラムミスや操作ミスなどでIDやパスワードがもれる可能性のほうが格段に高いことは心しておかなければならない

id:aiomock

ご回答ありがとうございます。

2010/05/24 14:43:41
id:y-kawaz No.3

回答回数1422ベストアンサー獲得回数226ここでベストアンサー

ポイント18pt

SSLはあくまでユーザとサーバ間の通信路の安全を保証するものであって、通信路での盗聴や改ざんや詐称を防ぐもので、サーバ上のデータを守るものではありません。

  1. まずサーバ上のデータをWEBで閲覧できる場所(ディレクトリ)以下に置かないこと。(CSV等で保存してWEBから丸見えになる事例は多々あります)
  2. 管理画面や確認画面などがあるなら、XSSやSQLインジェクション等の脆弱性が無いよう適切に実装すること。
  3. サーバやストレージの物理的な盗難の可能性も考えるのであれば鍵をかけたり入室管理された場所への設置を検討する。
  4. 万が一物理盗難やSQLインジェクション等によって生データが漏れてしまった場合を考えるなら保存するデータは暗号化しておく。
  5. メールフォームとのことなのでおそらく管理者にメールが飛ぶと思われますが、メールは基本暗号化などされていないのでそちらのセキュリティも考える必要があります。

色々ありますが、とりあえず上記の1と2に関しては最低限必要だと思います。

id:aiomock

ご回答ありがとうございます。

2010/05/24 14:44:20
id:doropon No.4

回答回数94ベストアンサー獲得回数16

ポイント18pt

SSLでクライアントとWebサーバの通信路の暗号化は確保されます。

DBのデータを守るということで考えると、

・サイト上のPHPスクリプトなどは安全か

formなどでSQLインジェクションされるような設計になっていないか。

管理画面など収集した内容を表示できるようなページを作ったとした場合に安全な設計か

パスワードが単純なものであったり、ユーザ名がrootだったり推測しやすいものは問題

管理などは必要なアクセス制限を掛けるのが前提

phpmyadminをデフォルトでrootパスワードなしで置いていたりするのはもってのほかです。

・DBへのアクセスにパスワードをちゃんとつける

・サーバそのもののセキュリティ

 telnetを使っている。やめたほうがいい。

 sshを使っている。rootでのログインは禁止、アクセスできるアドレスに制限を掛ける。パスワードよりも公開鍵のほうがいい。

サーバ上で動作しているアプリケーションにセキュリティホールが無いか。

受け取ったメールフォーム。メールそのものについても考えると、

ノートパソコンでpopしている場合、持ち出したノートパソコンを忘れるかもしれない。

複数人でフォームの内容を見ている場合、他のパソコンからの情報漏えいの可能性

いろいろとでてきます。

きりがないかもしれませんが、対策できることはやっておいて損はないと思います。

id:aiomock

ご回答ありがとうございます。

2010/05/24 23:23:10
id:lucia123 No.5

回答回数5ベストアンサー獲得回数0

ポイント18pt

データベースへアクセスするポート(MySQLなデフォルトで3306)に外部からアクセス不要であればファイアウォールで閉じておく

サーバー上のファイアウォールでも閉じておいて

ルーターのファイアウォールでも閉じておくのがよいと思います。

更に、DBMS側でも、LAN内からの接続だけでよければ

DBユーザー設定時に、アクセス元を制限しておく

id:aiomock

ご回答ありがとうございます。

2010/05/24 23:23:23
id:hanako393 No.6

回答回数1142ベストアンサー獲得回数87

ポイント18pt

PHPでSQLインジェクションに気をつけてください。

通常はこの程度しかされてません。


また、DBに格納するデータ自体に暗号をかけてしまうという手法があります。

そうすれば、DBからデータを取り出せたとしても、暗号状態ですので

復号する必要があります。

でもここまでしてるところはあまりないですね。

id:aiomock

ご回答ありがとうございます。

2010/05/24 23:23:41

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

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

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

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

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