HTTPによる通信

HTTPによるリクエスト

説明

HTTPリクエストは機密データを平文で送るため、通信の盗聴や中間者攻撃を受けるおそれがあります。HTTPだけでは、通信の機密性、完全性、接続先の認証を保護できません。

想定される影響

  • 情報漏えい: 平文で送信された機密情報を盗み取られる可能性があります。
  • データの改ざん: 転送中のデータが書き換えられるおそれがあります。
  • 認証の侵害: 盗まれた認証情報を使って、ユーザーになりすまされる可能性があります。

対処方法

  • HTTPSを使い、サーバー証明書の検証を有効にして転送データを保護してください。
  • TLS 1.2以降を使用してください。
  • サーバーとアプリケーションでHTTPSの使用を必須にしてください。

例

変更前

python
# 平文のHTTPリクエスト
import requests

response = requests.get('http://example.com/api/data')

変更後

python
# 証明書を検証するHTTPSリクエスト
import requests

response = requests.get('https://example.com/api/data')

解説

  • 変更前: HTTPで機密データを平文送信するため、中間者攻撃を受けるおそれがあります。
  • 変更後: HTTPSと既定のサーバー証明書検証で転送データを保護します。verify=False で証明書検証を無効にしないでください。

参考資料