web-dev-qa-db-ja.com

オンライン商品券:詐欺を防ぐシステム

電子ギフト券(作成された情報とWebサイト経由で電子的に配信される情報)を使用した不正行為を回避するための良い方法は何ですか?

既存のシステムの監査/再設計を検討しており、不正行為を減らすために適切に配置できるシステムの部分の概要を把握したいと考えています。

私が考えることができるいくつかの部分は、最初から興味があります:

  • 拒否基準
  • フラグ付け基準(購入と使用の間の日付範囲が非常に大きい場合、原産国が異なる場合など)
  • 盗難の兆候
  • ギフトカードシステムに対するOracle攻撃の防止(たとえば、機能するまでギフト証明書認証をランダムに試行)
  • 後の認証のためにギフト券の一部として含めるデータ。
  • ギフト券が実際に一致することを確認するための認証システム。

(チェックインするライブラリがない限り)トピックにとってそれほど重要ではないと思いますが、PHPバックエンドでサイトを実行しています。

6
Kzqai

考慮すべきいくつかの良い習慣:

一意で推測しにくい証明書キーを作成する

キーは、入力するのが難しいことを意味する場合でも、推測するのは難しいはずです。 random.org を考慮して、 HTTP api を使用して真のランダムな英数字キーを生成できます。このサイトは、プログラミング言語が大気ノイズで使用する擬似ランダム文字列生成アルゴリズムをシードします。このアルゴリズムは、推測しにくい「乱数」を生成すると言われています。

ハードウェア乱数ジェネレーター を使用して真にランダムなコードを生成する他の方法があります

ギフトカードの申し立てプロセスを保護する

ギフトカードのコードを処理するフォームに対するブルートフォース攻撃を防ぐために、できる限りのことをしてください。

生成されたキーをテストする簡単な方法を攻撃者に与えたくないので、時間、IPアドレス、およびユーザーアカウントによってギフトコード請求の試行回数を制限し、ユーザーを登録してログインさせて請求を試行します。 IPバンドによるよりも、ユーザーアカウントによるアクセスをブロックする方が簡単です。

証明書コードをメールアドレスまたはアカウントにリンクすることを検討してください

ユーザーがギフトカードを購入し、友人のメールアドレスを尋ねたら、友人がすでにあなたに登録されているかどうかを確認します。その場合は、ギフトコードを友人のアカウントにリンクして、そのユーザーのみがギフトコードを要求できるようにします。

または、キーコードを生成するのではなく、友人のアカウントに直接入金し、アカウントの入金を確認するメールを送信します(サインインしてギフトコードを入力する必要はありません)。ギフトコードが存在しない場合でも解読するのは困難です。友人がアカウントを持っていない場合、メールアドレスを事前に入力する登録リンクでサインアップするよう招待し、サインアップが完了したらアカウントにギフトの金額を入金します。繰り返しますが、アイデアはギフトコードへの依存を取り除くことです。

一定期間後にギフトカードの有効期限を検討する

Flickrはギフトアカウントでこれを行います。贈与されたアカウントコードが24か月以内に使用されなかった場合、贈与額は購入者に返金されます。推測されたコードと一致する可能性のあるシステム上に存在する何百もの休止コードを防ぎます。

物理的なギフト券にアクティベーションプロセスを使用する

コードは事前に印刷(およびフォイルを使用してマスク)されますが、販売時点まで非アクティブのままにしてください。たとえば、iTunesギフト券カードはレジで有効化されるため、万引き犯にとって魅力的ではありません。

メール配信システムを保護する

自分だけが使用し、自分だけがアクセスできるメールサーバーを介して、バウチャーコードを含むトランザクションメールを送信します。デフォルトでそのサーバーに保存されている可能性のある送信メールのすべてのコピーを削除することを検討してください。

要求されたコードを追跡し、それらを使用不可にする

当然、クレームされたコードを追跡し、再利用されないようにマークします。

サーバーをロックダウンしてから、セキュリティポリシーを作成して従います

適切なパスワードを使用し、サーバーソフトウェアにパッチを適用し、HTTPS経由でのみコードを発行および要求し、適切なセキュリティポリシーを作成して遵守します。依存するシステムが脆弱な場合、ギフトカードシステムを防弾にすることは時間の無駄です。

4
Nick

各ギフト券には、PIN番号も関連付けられています。 PIN番号は、ギフト券と一緒に表示しないでください(つまり、同じページまたは同じメールに表示されることはありません)。これにより、スヌーパーが両方の情報を取得できなくなります。オンラインギフト券を盗むには、ウェブページおよびをインターセプトする必要があります。これは一般に、オンラインで商品を販売している実店舗やモルタル小売業者が発行したギフトカードを使用して行われます。

詐欺を本当に抑えたい場合は、ギフト券番号を作成して、 Luhn Algorithm などのアルゴリズムチェックに合格することができます。これにより、ギフト券番号をブルートフォースしようとして、ユーザーが乱数とPINを生成または入力できなくなります。 Luhnアルゴリズムの詳細については、ウィキペディアで複数の言語を作成および検証するための コードサンプル を参照してください。 PHPライブラリもあります 同様に自由に使用できます。

ギフト券の使用の遅れは、ユーザーが使用するのをしばらく待つのが非常に普通なので、潜在的な危険信号または拒否する理由とは思わないでしょう。彼らはそれを持っていることを忘れるか、それが彼らに最初に提示されたとき、単にそれを使用したくないかもしれません。最終的にギフト券をキャンセルする唯一の理由は、指定された時間枠内での使用を奨励するためです。この場合、少なくとも6か月待ってからギフト券を非アクティブ化することをお勧めします。それにより、 チャージバック免責事項、私はその記事を書きました) 。

2
John Conde