ショッピングカートのセキュリティについて
- 評価
- クリップ 5
- VIEW 3,305
ショッピングカートを作成する際にセキュリティ面で必須でやっておかなくてはいけない事を教えて欲しいです。
もちろんSSLを使用し、HTTPSで購入者情報を通信しますが、それだけでは不十分でしょうか。
また、データベース(MySql)に顧客情報をそのまま保存するのは危険なのでしょうか。
カード決済や、コンビニ決済に関しては、決済代行業者に依頼する予定ですので、クレジットカードに対する情報は保存しません。
購入者の名前や住所、電話番号など履歴をDBに残すため個人情報の漏洩を懸念しています。
宜しくお願いします。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
+1
もし目的が開発ではなくECサイトのオープンなのであれば、商用に提供されているASPなどを利用される方が良いかもしれません。
具体的な懸念点としては例えば以下になります。
◯サーバ(共通)
・サーバ上で必要ないソフトウェアが動いていないか
・サーバ上で必要ないポートが空いていないか
・Apache,MySQLなどサーバ用のソフトウェア、またPHPなどは最新か
・SSH、SFTPでのログインは強固なものになっているか
※IPアドレス等の制限、パスワードではなくRSA認証などを用いているか、
rootでのログイン禁止、必要のないユーザーでログインできるようになっていないか
◯DBサーバ
・WebサーバとDBサーバを分けている場合、
DBサーバはグローバルからアクセスできないようになっていることが望ましい
・MySQLにログインするユーザーは適切な権限(GRANT)が与えられているか
※ログイン元の制御なども含めて
◯Webサーバ
・Apacheで余計なhttpヘッダを出力していないか
※Webサーバや言語のバージョンは隠す
・適切なユーザーでApache等のWebサーバが動いているか
◯Webアプリ
・コマンドインジェクション、SQLインジェクション、XSS、CSRF等が行われないか確認しているか
・セッションハイジャックへの対策は十分か
・リダイレクト時、第三者のドメインへ自由に飛べるようになっていないか
※例えば location.php?url=http://www.google.com/ など。フィッシングの踏み台になる
・サーバ上の特定のファイルを、URLやパラメータから開けるようになっていないか
※例えば hoge.php?file=/path/to/bar.txt などとなっている
・ドキュメントルートに不要なファイルが置かれていないか
※よくニュースになっている個人情報の漏洩で多いパターン
・ログイン時など、ブルートフォースアタック(辞書攻撃)対策は行われているか
・ユーザーのパスワードがハッシュ化された状態で保存されているか
・本番環境では詳細なエラー内容が出力されないようになっているか
※開発者向けの情報が出てしまうと相手にヒントを与えることになる
◯メールサーバ
・SMTPサーバが誰にでも利用されるようになっていないか
※踏み台になる恐れがあり
寝ぼけた頭で思い出したまま羅列しているので他にももろもろあると思います。
この手の話ではお約束ではありますが、IPAがここらへんの話をまとめたドキュメントとチェックリストを公開してますので一読されると良いかと思います。
https://www.ipa.go.jp/security/vuln/websecurity.html
MySQL等のDBに個人情報を記録しているところはたくさんありますので、対応をしっかり行えば問題が起こる確率を減らすことは可能です。しかしゼロにすることは中々出来ません。例えばデータセンターのHDDを交換した際、廃棄予定のディスクがデータ毎盗難に合うといったことも実際に発生しニュースになりました。どこまでケアするか、運営者の意向次第ではありますが、何だかんだで毎度予期せぬ事態が起こり大変な目に会うものですw
がんばってください。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
技術的な注意点では無いのですが、ECサイト構築にあたってはセキュリティコード(CVCまたはCVV)をDBに保存してはいけないというルールがあります。
WEB+DB PRESSのvol.76でWeb決済の詳しい特集があるので、そちらを一読されてみてはどうでしょうか。
もし、決済で不安であれば購入者が限定されてしまいますが、PayPalのビジネスアカウントを取得してPayPalでの支払いにすれば、セキュリティ
あと、PHPだとEC-CUBEというECサイト構築に特化したフレームワークがあります。
色々と制限があるので
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
情報漏洩としては1つはハックされる、もう1つは作業ミスで情報が漏れると言う事が考えられると思います。
ハックに関しては下記の対策が必要かと思います。
1. MySQLのセキュリティホール修正情報を日々チェックしてバージョンを上げる
2. 外部からMySQLに接続出来ないようにする
3. MySQLに接続できるマシンおよびユーザーを限定する(MySQLのユーザー権限など)
4. SQLインジェクション対策をする
作業ミスに関しては作業手順書を作成して対応するしかないと思います。
あとは、有効とは言えないかも知れませんが独自で暗号ツールをさk
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 89.98%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
2015/02/09 11:58
大変参考になります。
OSのインストールから構築しましたので、だいたいの項目はクリアしているように思いますが、いくつか気になる点もありますね。
時間をかけて1つ1つ再チェックしたいと思います。
100%は無理でも出来る事はやっておかないとダメですよね。
モヤモヤしていた頭がスッキリしました。
ありがとうございました。