セキュリティ上の理由から、Mandrill の IP のみがこれらの URL にアクセスできるようにしています。
誰か知っていますか?
Mandrill の署名は HTTP 応答ヘッダーにあります: Authenticating-webhook-requests
リクエスト ヘッダーで次を見つけます: X-Mandrill-Signature
. これはハッシュコードの base64 であり、web-hook キーを使用して署名されています。このキーは Webhook だけに秘密です。
Webhook に使用されるさまざまな IP がありますが、スケールするにつれて変更されるか、新しい IP が追加される可能性があります (おそらくそうなるでしょう)。別の方法として、Mandrill に追加した Webhook URL にクエリ文字列を追加し、POST が着信したときにそのクエリ文字列をチェックして、それが Mandrill からのものであることを確認することもできます。
mandrill のdocsで説明されているように、リクエストが本当に彼らからのものかどうかを確認するための署名を提供します。リクエストを作成するには、いくつかの手順があります。
mandrill_events
)X-Mandrill-Signature
結果をヘッダーと比較するPython での実装例を次に示します。
import hmac, hashlib
def check_mailchimp_signature(params, url, key):
signature = hmac.new(key, url, hashlib.sha1)
for key in sorted(params):
signature.update(key)
signature.update(params[key])
return signature.digest().encode("base64").rstrip("\n")
205.201.136.0/16
サーバーのファイアウォールでそれらをホワイトリストに登録しました。