8

セキュリティ上の理由から、Mandrill の IP のみがこれらの URL にアクセスできるようにしています。

誰か知っていますか?

4

6 に答える 6

18

Mandrill の署名は HTTP 応答ヘッダーにあります: Authenticating-webhook-requests

リクエスト ヘッダーで次を見つけます: X-Mandrill-Signature. これはハッシュコードの base64 であり、web-hook キーを使用して署名されています。このキーは Webhook だけに秘密です。

于 2013-05-13T09:46:44.120 に答える
9

Webhook に使用されるさまざまな IP がありますが、スケールするにつれて変更されるか、新しい IP が追加される可能性があります (おそらくそうなるでしょう)。別の方法として、Mandrill に追加した Webhook URL にクエリ文字列を追加し、POST が着信したときにそのクエリ文字列をチェックして、それが Mandrill からのものであることを確認することもできます。

于 2013-04-26T12:48:28.773 に答える
1

mandrill のdocsで説明されているように、リクエストが本当に彼らからのものかどうかを確認するための署名を提供します。リクエストを作成するには、いくつかの手順があります。

  1. Webhook の正確な URL から始めます (マインド スラッシュとパラメーター)
  2. 投稿変数をキーでソートします (マンドリルの場合、投稿パラメーターは 1 つだけです: mandrill_events)
  3. 区切り文字なしで、キーと値を URL に追加します
  4. あなたの秘密鍵(ウェブインターフェースから鍵を取得できます)とbase64でURLをhmacします。
  5. 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")
于 2016-12-19T10:14:25.740 に答える
0

205.201.136.0/16

サーバーのファイアウォールでそれらをホワイトリストに登録しました。

于 2013-05-17T14:14:29.403 に答える