सुरक्षा के उद्देश्य के लिए, मैं केवल मंड्रिल के आईपीएस को एक्सेस करने के लिए अनुमति देता हूं।मंड्रिल वेबहोक्स - सुरक्षा
क्या कोई उन्हें जानता है?
सुरक्षा के उद्देश्य के लिए, मैं केवल मंड्रिल के आईपीएस को एक्सेस करने के लिए अनुमति देता हूं।मंड्रिल वेबहोक्स - सुरक्षा
क्या कोई उन्हें जानता है?
हमारे पास वेबहुक के लिए उपयोग की जाने वाली आईपी की एक श्रृंखला है, लेकिन वे स्केल कर सकते हैं (और संभवतः) बदल सकते हैं या नए पैमाने पर जोड़े जा सकते हैं। एक विकल्प है जो आप मैनडिल में जोड़े गए वेबहूक यूआरएल में एक क्वेरी स्ट्रिंग जोड़ना चाहते हैं, और फिर जब कोई पोस्ट आता है तो उस क्वेरी स्ट्रिंग की जांच करें ताकि आप इसे मैनरिल से आ सकें।
प्रकार का बंदर के हस्ताक्षर HTTP प्रतिक्रिया हेडर में स्थित है: Authenticating-webhook-requests
अनुरोध हेडर खोजने में: X-Mandrill-Signature
। यह हैशकोड का बेस 64 है, वेब-हुक कुंजी का उपयोग करके हस्ताक्षरित है। यह कुंजी केवल आपके वेबहूक के लिए गुप्त है।
205.201.136.0/16
मैं सिर्फ उन्हें अपने सर्वर के फ़ायरवॉल में श्वेत सूची में है।
बस स्थिरांक की जगह है और इस समारोह का उपयोग करें:
<?php
function generateSignature($post)
{
$signed_data = WEB_HOOK_URL;
ksort($post);
foreach ($post as $key => $value) {
$signed_data .= $key;
$signed_data .= $value;
}
return base64_encode(hash_hmac('sha1', $signed_data, WEB_HOOK_AUTH_KEY, true));
}
//---
if (generateSignature($_POST) != $_SERVER['HTTP_X_MANDRILL_SIGNATURE']) {
//Invalid
}
?>
प्रकार का बंदर के docs में वर्णित है, वे यदि अनुरोध वास्तव में उन लोगों से आया एक हस्ताक्षर की जाँच करने के प्रदान करते हैं। अनुरोध वहाँ कुछ ही कदम है निर्माण करने के लिए: अपने webhook की सटीक यूआरएल साथ
mandrill_events
)X-Mandrill-Signature
हैडरसाथ परिणाम की तुलना यहां अजगर में एक नमूना कार्यान्वयन है:
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")
अरे हाँ, अच्छा और कुशल विचार। दूसरों के लिए, यह मेटाडेटा जानकारी के बारे में है। यह एक जेटी है जिसे मैं अभी आपकी पोस्ट पसंद नहीं कर सकता :)। धन्यवाद – devside
आईपी को धोखा नहीं दिया जा सकता है! – ankitjaininfo
@ankitjaininfo इस प्रश्न पर ठोकर खाई और आपकी टिप्पणी ने मेरी जिज्ञासा पिक्चर की। मेरी पहली प्रवृत्ति "आसानी से नहीं" चीज थी। तब मुझे यह पोस्ट आईटी सिक्योरिटी स्टैक एक्सचेंज पर मिला: https://security.stackexchange.com/questions/14505/can-i-trust-the-source-ip-of-an-http-request। मुझे लगता है कि बेहतर 3 साल देर से, मुझे लगता है। – nageeb