質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

3554閲覧

Ruby on Railsで構築中のWebサービスの決済APIのセキュリティに関しまして

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

1クリップ

投稿2016/08/28 06:50

現在、Ruby on RailsでWebサービスの決済部分のコードを書いています。

使用している決済APIは以下のPAY.JPです。
https://pay.jp/docs/api/

①商品情報や決済方法の選択→②クレカ情報入力→③入力情報確認→④完了画面
というフローで考えています。

セキュリティ面での質問です。

【質問1】

③から④に遷移するときに決済処理を行いたいのですが、②で入力してもらったクレカ情報をどうやって③→④に渡すかで悩んでいます。③のERBにinputのhiddenでクレカ情報を書き込むのもセキュリティ面でよくないことはわかっているのですが、どうするのが一般的になりますでしょうか。

【質問2】

決済後にAPIからレスポンスがあった決済IDなどはDBに保存しておいても良いものなのでしょうか。購入履歴などのページも考えているために最低限、決済IDはDBに保存しておく必要があると思うのですが、それが一般的なことかどうかがわかりません…。

繰り返しになりますが、Ruby on Railsで構築しております。ご指導のほどよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

③のERBにinputのhiddenでクレカ情報を書き込むのもセキュリティ面でよくないことはわかっている

なぜ、そう思うのでしようか?
hiddenでカード番号を受け渡すと、脆弱性診断業者が指摘することは確かにあります。それは、ユーザが離席中に第三者がPCを操作してカード番号を閲覧できるから、というのが理由のようです。
であれば、③入力情報確認 では何を確認させるのでしょうか?カード番号をフルで表示するのであれば、hiddenを確認するよりもさらに簡単にカード情報を閲覧できます。
あるいは、入力したという意思の確認でしょうか?

このように考えていくと、そもそも確認画面は不要ではないでしょうか?カード番号が間違えていたら、チェックデジットか与信確認のところでエラーになるだけでしょう。その際に再入力してもらえばよいだけだと思います。pay.jpが提供するカード番号入力画面(カード番号を入力して、トークンを返す)にも確認画面はないようです。できるだけ、決済代行サービスの提供するものを「そのまま」使われることをおすすめします。

質問2の決済IDの保管自体は問題ないと思いますが、心配であれば、Q&AサイトではなくPAY.JPに直接確認するべきすじあいの質問かと思います。

投稿2016/09/04 05:06

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/06 00:21

勉強になりました。確認画面なしで実装してみます。ご助言ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問