2013-04-05 8 views
5

मुझे भुगतान सत्यापित करने के लिए एक भुगतान गेटवे https पोस्ट मिलता है। मुझे यह सत्यापित करने की आवश्यकता है कि पोस्ट डोमेन से बरकरार था।नोडजेस एक्सप्रेस अनुरोध हेडर - रेफरर प्राप्त करें, आदि

इम की पुष्टि है कि रेफरर डोमेन की एक निश्चित सूची से है, लेकिन मेरी req.headers में मैं एक रेफ़रलकर्ता देख न की कोशिश कर रहा | संदर्भित विकल्प:

{ 'x-real-ip': '123.34.45.176', 
    'x-forwarded-for': '123.34.45.176', 
    host: 'my.foo.com', 
    'x-nginx-proxy': 'true', 
    connection: 'close', 
    'user-agent': 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)', 
    accept: '*/*', 
    'content-length': '441', 
    'content-type': 'application/x-www-form-urlencoded' } 

मेरे जैसे उन क्षेत्रों में से खाली हेडर क्यों है रेफरर, मूल आदि?

यह एक पोस्ट के अंदर है:

app.post('/payment/notify/', function(req, res){ 
    req.headers 
}) 
+0

शायद मैं जांच सकता हूं कि आईपी पता डोमेन नामों में से एक है या नहीं? – Harry

+0

Yup यह वही है जो मैं करूँगा, मेजबाननाम आईपी पता प्राप्त करें। मुझे नहीं लगता कि वे मुझे एचटीटीपीएस की वजह से मूल भेजते हैं। मेजबाननाम प्राप्त करने के लिए मैं डीएनएस मॉड्यूल का उपयोग कर रहा हूँ। इस जवाब में prestaul द्वारा http://stackoverflow.com/questions/4255264/getting-client-hostname-in-node-js – Harry

उत्तर

10

सभी अनुरोध एक संदर्भित हैडर की है।

यदि ब्राउज़र पर अंतिम पृष्ठ एक सुरक्षित सर्वर (https) है तो यह आपको एक रेफरर प्रेषित नहीं करता है।

इसके अलावा, यदि आपका उपयोगकर्ता अपना पता बार में अपना पता टाइप करता है तो आपको एक रेफरर भी नहीं मिलता है।

+0

मेरे मामले में मुझे भुगतान की पुष्टि करने के लिए भुगतान गेटवे से एक पोस्ट प्राप्त होती है। मुझे यह सत्यापित करने की आवश्यकता है कि यह भुगतान डोमेन से आ रहा है। आपका क्या सुझाव है? – Harry

+5

रेफरर पर निर्भर करना यह निर्धारित करने का एक सुरक्षित तरीका नहीं है कि भुगतान किया गया है या नहीं। आपको भुगतान गेटवे पर कुछ प्रकार की बैकएंड क्वेरी सेट अप करने की आवश्यकता है। उदाहरण के तौर पर, जब कोई ऐप में फेसबुक लॉगिन करता है, तो ऐप को फेसबुक से एक्सेस टोकन मिलता है जो उसके बाद सर्वर पर जाता है और सर्वर एक्सेस टोकन को सत्यापित करने के लिए फेसबुक से अनुरोध करता है। आप इसके लिए ऐप का शब्द नहीं लेते हैं। यह सुरक्षित नहीं है। तो अगर आपको यह जानने की ज़रूरत है कि भुगतान किया गया है, तो आपको भुगतान गेटवे पर बैकएंड अनुरोध करना होगा। – Daniel

+1

शीर्षलेख की जानकारी को धोखा दिया जा सकता है, खासकर 'रेफरर', इसलिए इस पर भरोसा करना बीएडी है –

संबंधित मुद्दे