メニュー

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Twilioの着信リクエストを検証してExpressアプリケーションを安全にする

このガイドでは、開発者のTwilio Webhookへの受信リクエストが本当にTwilioからのものか検証することで、Expressアプリケーションをセキュアにする方法を取り上げます。

Twilio Node SDKを使用してExpressアプリケーションをセキュアにする方法はシンプルです。 Twilio SDKにはすぐに使えるExpressミドルウェアがついてきます。

Let’s get started!

Twilio Expressリクエスト検証ミドルウェア

Twilio Node SDKには受信リクエストを検証するExpressミドルウェアとして使用できる webhook() メソッドが含まれています。 Expressのルートに適用されると、リクエストが認証されない場合にはミドルウェアは403 HTTPレスポンスを返します。

Loading Code Sample...
      
      
          
          
          
          
        
      本カスタムミドルウェアで、開発者のExpressルートへの受信リクエストが本当にTwilioから発信されたものかどうか確認します。

      Twilioリクエストの検証を行うExpressアプリケーション用にTwilio Webhookミドルウェアを使用する

      本カスタムミドルウェアで、開発者のExpressルートへの受信リクエストが本当にTwilioから発信されたものかどうか確認します。

      実際にTwilioのWebhookを使用できるよう、ローカルの開発環境にトンネルを使用する

      If your Twilio webhook URLs start with https:// instead of http://, your request validator may fail locally when you use ngrok or in production if your stack terminates SSL connections upstream from your app. This is because the request URL that your Express application sees does not match the URL Twilio used to reach your application.

      ngrokでローカル開発向けにこれを修正するには、ngrok https 3000ではなくngrok http 3000を使用し、Webhookへのリクエストを受け入れます。

      Disable request validation during testing

      Expressルート用にテストを記述した場合、Twilioリクエスト検証ミドルウェアを使用するルートでテストに失敗する可能性があります。 これらルートに送信するテストスイートのいかなるリクエストも、ミドルウェアの検証チェックに失敗します。

      この問題を修正するには、 {validate: false} を検証ミドルウェア twilio.webhook() に渡して無効化します。 Expressアプリケーションでは、NODE_ENV をアプリケーションが実行中の環境を決定する値として使用するのは一般的なことです。 コード例では、NODE_ENV'test' のとき、検証ミドルウェアが無効化されます。

      Loading Code Sample...
          
          
              
              
              
              
            
          環境変数を使用して、テスト中のWebhook検証を無効にします。

          Disable Twilio webhook middleware when testing Express routes.

          環境変数を使用して、テスト中のWebhook検証を無効にします。

          次は?

          Validating requests to your Twilio webhooks is a great first step for securing your Twilio application. We recommend reading over our full security documentation for more advice on protecting your app, and the Anti-Fraud Developer’s Guide in particular.

          To learn more about securing your Express application in general, check out the security considerations page in the official Express docs.

          Agustin Camino Jose Oliveros Andrew Baker Paul Kamp  Kevin Whinnery Kat King

          ヘルプが必要ですか?

          We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.

          Loading Code Sample...