# 高度な不正使用検知機能

不正な支払いを防止する Stripe の機能を最大限に活用するために開発者が使用できるツールについてご紹介します。

[Stripe.js](https://docs.stripe.com/js.md) は Stripe の JavaScript ライブラリで、企業が顧客のブラウザから重要な決済情報を安全に収集できるように設計されています。[Stripe In-App Payments](https://docs.stripe.com/payments/mobile.md) は、Stripe.js に対応するネイティブの iOS および Android バージョンです。

Stripe.js とモバイル SDK は、デバイスの特性とユーザーアクティビティーに関して、正当な取引と不正な取引の区別に役立つリスク要因を調べ、高度な不正利用検出を提供します。これらのリスク要因は、*Radar* (Stripe Radar helps detect and block fraud by using machine learning. It's built into Stripe and requires no additional setup to get started) などの Stripe の不正利用防止システムを支えています。リスク要因は、`m.stripe.com` エンドポイントに定期的にリクエストを行うことで、Stripe のバックエンドに転送されます。

さらに、Stripe.js を読み込む各ページで hCaptcha が読み込まれます。hCaptcha は CAPTCHA の一種であり、正当な顧客への負荷を抑えながら、不正利用の阻止に役立つ追加のリスク要因を Stripe に提供します。hCAPTCHA の使用を無効にするには、[Stripe サポート](https://support.stripe.com/contact/login)までご連絡ください。

Stripe の目標は、不正利用を最小限に抑えながら、正当な顧客からの決済を最大化することです。不正利用は、オンラインビジネスを運営する上で最も困難な側面の 1 つとなり得ます。普段は大量の不正利用を経験していないビジネスでさえも、突然、予期せず攻撃を受け、多額の損害を被ることがあります。Stripe は毎月、Stripe をご利用のビジネスで 5 億 USD を超える不正な決済を未然に防いでいます。そのために、Stripe では、取引データ (金額、顧客の配送先住所、日付など) と高度な不正利用検出リスク要因 (デバイスとアクティビティーのリスク要因) の両方を含め、犯罪者やボットの判別に役立つ情報を収集し分析します。

収集される情報の内容とその用途の詳細については、[プライバシーポリシー](https://stripe.com/privacy)と[クッキーポリシー](https://stripe.com/cookies-policy/legal)をご覧ください。

## リスク要因の種類

### デバイスの特性

デバイスの特性は、顧客のブラウザ、画面、またはデバイスに関するリスク要因です。Stripe はこれらのリスク要因を使って、異常な閲覧動作と一致する構成を識別したり、Stripe ネットワークの他のビジネスで観測される類似したパターンと比較したりします。まれなパラメーターの組み合わせや、本物のユーザーのコンピューター環境を反映しているとは考えにくい組み合わせは、不正な取引の検出に役立ちます。

### アクティビティインジケータ

高度な不正利用検出リスク要因には、実際の買い物客からのアクティビティーインジケーターも含まれます。これは、正当な顧客と、不正な購入者やボットを区別するために役立ちます。たとえば、ボットは、実際の人間よりもずっと速くウェブサイトや決済フォーム内を移動する傾向があります。また、カード番号は入力されるのではなく、コピー＆ペーストされることがよくあります。これらのリスク要因には、マウスアクティビティーのインジケーターや、ショッピング中にユーザーが各ページに費やした時間も含まれます。これらはいずれも、セッション全体にわたるボットとみられる動作の識別に役立ちます。

Stripe は、Stripe Elements の入力フィールドに対応する場合にのみ、ページのコンテンツに関するデータを収集します。たとえば、Stripe はメールアドレスを収集して、Link の登録とログインを事前入力することがあります。Stripe Element にメールアドレスのフィールドがない場合、Stripe はページのコンテンツからその情報を収集しません。この情報が保存されることはありません。ユーザーアクティビティーに関するリスク要因は、1 つのサイトまたはアプリ内の 1 回のショッピングセッションに限定され、他のショッピングセッション、サイト、またはアプリには関連付けられません。

## リスク要因が収集されるタイミング

Stripe の不正利用エンジンが観測するアクティビティが多ければ多いほど、Stripe の不正利用防止能力も向上します。このため Stripe では、決済画面だけでなく、ショッピングに利用されるすべてのページに Stripe.js を含めることを推奨しています。Stripe.js のカバレッジを広げることで、Stripe は実際の顧客から不正な購入者を区別するための、可能な限り豊富なリスク要因を得られるようになります。

Stripe.js をまったく使用しない場合には、ビジネスが *PCI 準拠* (Any party involved in processing, transmitting, or storing credit card data must comply with the rules specified in the Payment Card Industry (PCI) Data Security Standards. PCI compliance is a shared responsibility and applies to both Stripe and your business)の全責任とその他の不正使用のリスクを負わなくてはならなくなります。

iOS と Android SDK は、SDK オブジェクトがインスタンス化されると、アプリの高度な不正利用検出リスク要因を収集します。データは、トークン化リクエスト時にのみ Stripe に転送されます。

## データのプライバシー

この高度な不正利用検出リスク要因データは、[プライバシーポリシー](https://stripe.com/privacy)に記載されているように、広告に使用されることはなく、広告会社に貸し出し、販売、提供されることもありません。Stripe はこのデータを不正利用検出およびセキュリティの目的のみに使用し、その目的に有用である限り保持します。

内部においてこのデータは、Stripe による厳しいアクセス管理ポリシーの対象となり、そのデータへのアクセスは不正使用検出防止およびセキュリティに従事する少数の Stripe 従業員のみに限定されます。

## 高度な不正使用検出を無効化する

Stripe ユーザーは、それぞれのウェブサイトおよびアプリで、高度な不正利用検出リスク要因の収集を無効にすることができます。無効化すると、不正利用のリスク、特に[カードテスティング](https://docs.stripe.com/disputes/prevention/fraud-types.md#card-testing)のリスクが高くなります。Stripe は引き続き、[Stripe Checkout](https://docs.stripe.com/payments/checkout.md) 決済ページなどの Stripe ドメインで不正利用検出リスク要因を収集します。

さらに、高度な不正使用検出シグナルを無効化しても、顧客が決済ページで Stripe によって管理されるフィールドとインタラクトした際に記録されるイベント (Stripe ではこれらのイベントを不正使用を防止し、Stripe Elements の機能を確認するために使用します) の収集にも、[3D セキュア 2 認証](https://support.stripe.com/questions/3d-secure-2-device-information) (Stripe はこの情報を、発行銀行がリスク分析をできるように発行銀行に送信する必要があります) 中に収集される基本的なデバイス情報収集にも影響しません。

### Stripe.js

[Stripe.js](https://docs.stripe.com/js/including) で高度な不正利用検出リスク要因を無効化するには、Stripe.js スクリプトタグでクエリパラメーターとして `advancedFraudSignals` を設定するか、または最新バージョンの [Stripe.js モジュール](https://github.com/stripe/stripe-js)に更新し、`pure` エクスポートを使用して、`setLoadParameters` を呼び出します。

#### HTML

```html
<script src="https://js.stripe.com/endive/stripe.js?advancedFraudSignals=false"></script>
```

### iOS SDK

[Stripe iOS SDK](https://github.com/stripe/stripe-ios) で高度な不正利用検出リスク要因を無効化するには、iOS SDK v19.1.1 以降に更新します。Stripe SDK を構成する際に、`advancedFraudSignalsEnabled` プロパティを設定します。

#### Swift

```swift
StripeAPI.defaultPublishableKey = "<<YOUR_PUBLISHABLE_KEY>>"
StripeAPI.setAdvancedFraudSignalsEnabled(false)
```

### Android SDK

[Android SDK](https://github.com/stripe/stripe-android) で高度な不正利用検出リスク要因を無効化するには、Android SDK v14.4.0 以降に更新します。Stripe SDK を構成する際、Stripe SDK オブジェクトのインスタンス化やアクセスの前に、`advancedFraudSignalsEnabled` プロパティを設定します。

#### Kotlin

```kotlin
class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()

        Stripe.advancedFraudSignalsEnabled = false

        PaymentConfiguration.init(
            applicationContext,
            "<<YOUR_PUBLISHABLE_KEY>>"
        )
    }
}
```
