मैं सिर्फ इतना है कि Meteor.call
देखा, अवधारणा है कि आह्वान संग्रह का सम्मिलित करें, अद्यतन से उपयोगकर्ता को रोकने, विधि, JavaScript कंसोल से लागू किया जा करने में सक्षम को दूर अभी भी।जावास्क्रिप्ट कंसोल से 'Meteor.call' को आमंत्रित करने से कैसे रोकें?
ग्राहक के उदाहरण के लिए:
// client
...
Meteor.call('insertProduct', productInfo);
...
यहाँ सर्वर हिस्सा है:
// server
Meteor.methods({
insertProduct: function(productInfo){
Product.insert(...);
}
})
ठीक है, मुझे पता है लोगों को अपने JavaScript कंसोल से सीधे Product.insert (आह्वान नहीं कर सकता)।
लेकिन अगर वे थोड़ा और अधिक प्रयास करते हैं, वे यह पता लगाने चाहते हैं Meteor.call()
डेवलपर उपकरण के संसाधन टैब से ग्राहक की जावास्क्रिप्ट में है।
तो अब वे अपने कंसोल से Meteor.call
को आमंत्रित करने का प्रयास कर सकते हैं, फिर यह अनुमान लगाने का प्रयास करें कि productInfo
के गुण क्या होना चाहिए।
तो मुझे आश्चर्य है कि कैसे हम इस अंतिम गतिविधि को रोकने कर सकते हैं? क्या Meteor.call
नौकरी अच्छी तरह से किया है? या मुझे कुछ महत्वपूर्ण याद आ रहा है?
कुछ भी नहीं है, * कुछ नहीं *, एक जावास्क्रिप्ट प्रोग्राम ऐसा कर सकता है जिसे आप कंसोल में दोहराना नहीं कर सकते। *कुछ भी तो नहीं*। करने के लिए एकमात्र चीज सर्वरसाइड पर एयरटाइट सत्यापन है, ताकि केवल उन्हीं चीजों को आप पार करने की उम्मीद कर सकें। – Amadan
भी, यदि यह अमादन की टिप्पणी से अभी तक स्पष्ट नहीं है, तो हाँ उपयोगकर्ता * कंसोल से 'product.insert() 'को कॉल कर सकते हैं। तो आपको यह सुनिश्चित करने की ज़रूरत है कि आपके पास सर्वर पर नियमों को सही अनुमति/अस्वीकार कर दिया गया है (और 'असुरक्षित' पैकेज को हटा दिया है)। –
इसमें कुछ भी गलत नहीं है। वेब पर प्रत्येक एप्लिकेशन में कुछ प्रकार का 'मीटर.call' होता है, आमतौर पर यह कुछ यूआरएल के लिए सिर्फ एक अजाक्स कॉल है, इसलिए आप कंसोल खोल सकते हैं और AJAX कॉल कर सकते हैं, यह ठीक है। बस ग्राहक पर भरोसा मत करो। – imkost