そこで、セキュリティについて気になります。
例えば会員データのうち、個人情報の重要な部分(本名・住所など)も、
同じDBに入れておいて大丈夫なものなのでしょうか?
通常のDBなら、だいたい全て同じDBでテーブルを分けていると思いますが、
個人情報がある場合はどうしているのかな、
と少し気になりました。
パスワードはMD5とするのは基本としても、
個人情報系はどうしているのか気になります。
実際に運用している方で、どうしているのか教えて頂けますと助かります。
その際、どれくらいの規模のサイトか、などのサブ情報もあるとうれしいです。
または、こうしている、等の情報ソースがあれば、実際に運用していなくても頂けますとうれしいです。
1,出会い系(会員3万)
会員テーブルに全部突っ込んである。
2,EC(化粧品、会員1万2千)
同上。 カードの登録情報等は決済サーバのDB(外部通信不能)
3,EC(家電、会員10万)
別テーブルだが同一サーバ。
バックアップの保管は、家電の所以外はかなりいい加減(出会い系なんて管理画面でプレーンでダンプ落とすからスニッファで取り放題だし、化粧品の所もオペレーションルームに鞄とか持ち込める)
っていうか、出会い系はSQLインジェクションバグあるから修正した方がって上司に言ったが、お金かかるからいいやとか言われて、退職するまで放置されてた(多分、今でも・・・)
開発現場では気にしてる人間もいるけど、オトナの事情で実際に情報保護に力を入れていることは少ないと思う。
出会い系の所は、平均して年に1~2件は流出してたっぽいけど(督促の振りした振り込め詐欺の電話が開発用の携帯に来るから) 桜部隊はバイトばっかりだから、そいつらが持ち出してるんだろうが。 でも、運営者は殆ど気にしない。 ECの方は、特に無かったな。
会員制のサイトであればよく作っていますが
別に普通にDBの中に置いてます
ただ、普通、WebサーバもDBサーバもプライベートIPで構築しますし
グローバルIPのPort:80とか443だけをルータでフォワードして作ります
会員数は数万~数十万程度が多いかな
メンテは社内のネットワークからやるようにしたり
FTPもWebサーバに通るようにしてみたり
場合によってはアプライアンスを設置してVPNを使ったり
その辺はネットワークの設定の問題ですし、予算と既存のネットワーク設備によってバラバラです
しかし、まぁ、アプリでインジェクション系の対策を徹底して
DBサーバには普通の手段ではクエリを投げられない様にしておけば大抵大丈夫じゃないですかね?
と言うかこれで駄目だと、インターネットに繋がってる限りどこに置いても駄目なのでは?
ありがとうございます。
大規模になってきたらネットワーク構築を
考え直したほうがいいみたいですね。
とりあえずDBサーバに対する防御策をがんばってみます。
同じDBでも別DBでもアプリに脆弱性があったらデータ抜かれる事は変わらん。
結局どこかでアクセスしなきゃいけないデータだからね。
あえて言うなら暗号化しておくぐらいか。
それよりは内部流出なんかが無い様に運用ルールをきちんと決めて、総合的なセキュリティ対策をしっかり採ること。
もちろんアプリ側で SQL インジェクション対策とかも含む。
ありがとうございます。
やはりネットワークでつながる時点で
あまり変わらないのですね。
内部流出が無いように仕組みもチェックしてみようと思います。
ありがとうございます。
案外普通に同一DBのテーブルに入れているものなんですね。
その中で社内セキュリティとプログラムセキュリティを高めていくと良さそうですね。