मैं एक ऐप में jQuery का उपयोग कर रहा हूं जो उपयोगकर्ता को क्लिक करता है .click() बाध्यकारी के माध्यम से दिए गए क्रिया को करने के लिए उपयोगकर्ता क्लिक करता है, और मैं चाहता हूं कि यह कार्यक्षमता केवल उपयोगकर्ता mousedown के माध्यम से उपलब्ध हो। मेरे दोस्तों में से एक ने आज बताया कि फ़ायरबग (या कुछ समान) में जावास्क्रिप्ट टर्मिनल से $ (तत्व) .click() चलाने के लिए संभव है, और तत्व पर क्लिक करने के समान कार्यक्षमता प्राप्त करें - जो कुछ मैं चाहता हूं को रोकने के। ऐसा करने के बारे में कोई विचार कैसे? आपके सहयोग के लिए धन्यवाद।बाहरी पहुंच से jQuery फ़ंक्शन को सुरक्षित करें
उत्तर
संक्षिप्त उत्तर: नहीं, आप इसे वास्तव में रोक नहीं सकते हैं।
लांग जवाब: एक click event
की तरह किसी भी घटना ऐसी Event handlers
कहा जाता है के लिए बाध्य है। वे हैंडलर functions
हैं जिन्हें किसी दिए गए ईवेंट के दौरान निष्पादित किया जाता है। इसलिए यदि आप किसी तत्व पर क्लिक करते हैं, तो आपका ब्राउज़र जांचता है कि event handlers
इसके लिए बाध्य हैं, यदि ऐसा है तो fires
उन्हें। यदि नहीं, तो ब्राउज़र bubble up
को parent elements
पर ईवेंट करने का प्रयास करेगा, फिर से जांचता है कि event handlers
उस तरह की घटना के लिए बाध्य है .. और बहुत आगे।
jQuerys
.trigger()
विधि (राशि है जो आप वास्तव में फोन करता है, तो उदाहरण के लिए .click()
बुला) सिर्फ एक ही बात करता है। यह event handlers
पर कॉल करता है जो एक विशिष्ट घटना के लिए एक विशिष्ट तत्व से बंधे होते हैं।
संपादित
वहाँ soft detect
कोई वास्तविक क्लिक के somekind के सामान्य ढंग, उदाहरण के लिए यदि आप एक event object
भीतर toElement
संपत्ति के लिए जाँच कर सकते हैं हो सकता है। उस संपत्ति को सेट नहीं किया गया है जब triggered
। लेकिन फिर, आप आसानी से नकली कर सकते हैं कि .trigger()
के साथ। उदाहरण:
$(document).ready(function() {
$('#invalid2').bind('click', function(e){
alert('click\nevent.target: ' + e.toElement.id);
console.log(e);
});
$('#invalid1').bind('click', function(){
$('#invalid2').trigger({
type: 'click',
toElement: {id: 'Fake'}
});
});
});
कार्य उदाहरण: http://www.jsfiddle.net/v4wkv/1/
तुम सिर्फ $('#invalid2').trigger('click')
कहेंगे तो toElement
संपत्ति वहाँ नहीं होगा और इसलिए असफल। लेकिन जैसा कि आप देख सकते हैं, आप event object
में कुछ भी जोड़ सकते हैं।
आप क्या रोकने की कोशिश कर रहे हैं? कोई आपके क्लाइंट साइड स्क्रिप्ट के साथ गड़बड़ कर रहा है? आप अपने कोड को खराब करने जैसी चीजें कर सकते हैं लेकिन उससे भी ज्यादा नहीं। लेकिन यह भी करने से यह मेरी राय में लायक है इससे ज्यादा परेशानी होती है।
यदि आप नहीं चाहते हैं कि लोग कुछ चीजें कर रहे हैं तो सर्वर को कार्यक्षमता को स्थानांतरित करें।
बुरी खबरों के बारे में क्षमा करने के लिए खेद है।
Obfuscation आपके उपयोगकर्ता को अपने जावास्क्रिप्ट से गड़बड़ करने से रोकने के लिए एक भयानक तरीका प्रतीत होता है। अगर कोई वास्तव में कुछ काम करने की सभी परेशानी से गुजरना चाहता है, तो उन्हें क्यों न दें? – LandonSchropp
@helixed मैं सहमत हूं। मैंने कहा कि यह परेशानी के लायक नहीं था लेकिन यह एक विकल्प है। मैंने उसे सर्वर पर ले जाने के लिए कहा। – spinon
अच्छा बिंदु साथी, लेकिन मेरी चिंता यह नहीं है कि कोई * इसे स्वयं कह सकता है, बल्कि यह कि वे इसे किसी ऐसी चीज में स्क्रिप्ट कर सकते हैं जो बहुत बार चल सकता है। मुझे घटना को केवल माउस पर क्लिक करने की आवृत्ति पर होने की आवश्यकता होती है। (और हाँ, यह प्रत्येक कॉल पर मेरे सर्वर के साथ संचार करता है।) – man1
आप इसके खिलाफ कुछ भी नहीं कर सकते हैं, तो पूरा कार्य लिखना और फिर इसे आग लगाना भी संभव होगा।
लेकिन यह एक समस्या क्यों है? अगर कोई क्लाइंट साइड बदल रहा है तो यह केवल उसे प्रभावित करता है। या आप कुछ डेटा जांचने की कोशिश कर रहे हैं? यह हमेशा बैकएंड में किया जाना चाहिए, क्योंकि आप कभी भी यह सुनिश्चित नहीं कर सकते कि वास्तव में इसे क्या भेजा जाता है।
आप ईवेंट ऑब्जेक्ट (जिसे हैंडलर के लिए पहली तर्क के रूप में पारित किया गया है) मूलवेन्ट की जांच कर सकते हैं। यदि ईवेंट अनुकरण किया जाता है तो यह अनिर्धारित होगा।क्लिक करें()
लेकिन यह पूरी तरह से बेकार है। आप सुरक्षा के लिए जावास्क्रिप्ट का उपयोग नहीं कर सकते - क्लाइंट का पूरा नियंत्रण है (और फायरबग कंसोल केवल सबसे स्पष्ट उपकरण है)। क्लाइंट-साइड सुरक्षा जांच केवल उपयोगकर्ता के लिए संकेत और त्रुटियों के खिलाफ सुरक्षा होना चाहिए, दुर्भावनापूर्ण इनपुट केवल सर्वर-पक्ष पर ही रोका जा सकता है।
- 1. बाहरी परिवर्तनीय पहुंच
- 2. बाहरी फ़ाइल से jQuery-टेम्पलेट लोड करें?
- 3. आंतरिक फ़ंक्शन बाहरी फ़ंक्शन वैरिएबल
- 4. रूबी नेस्टेड फ़ंक्शन में बाहरी चरों तक पहुंच
- 5. सुरक्षित पहुंच विनिर्देशक
- 6. सार्वजनिक पहुंच के लिए लिनक्स वेबसर्वर को सुरक्षित करना
- 7. जावास्क्रिप्ट बाहरी स्कोप परिवर्तनीय पहुंच
- 8. साइथन: बाहरी सी फ़ाइल से कॉल फ़ंक्शन
- 9. फ़ंक्शन कॉल पर बाहरी जावास्क्रिप्ट लोड करें
- 10. jQuery से PHP फ़ंक्शन कॉल करें?
- 11. सुरक्षित jQuery ajax
- 12. jquery से PHP फ़ंक्शन को कॉल करना?
- 13. web2py - बाहरी पहुंच की अनुमति दें - कैसे?
- 14. फ़्लैन फ़ंक्शन अनसुलझा बाहरी
- 15. एक विशिष्ट फ़ंक्शन को अनइंड करें jQuery
- 16. सुरक्षित स्ट्रिंग फ़ंक्शन की तुलना करें
- 17. बैकबोन.जेएस के माध्यम से प्रमाणीकृत आरईएसटी सर्वर तक सुरक्षित पहुंच?
- 18. jQuery मोबाइल - बाहरी फ़ाइल से पाद लेख शामिल करें
- 19. jquery डुप्लिकेट फ़ंक्शन को
- 20. jQuery .val() फ़ंक्शन ओवरराइड करें?
- 21. Jquery मोबाइल, सूची से विस्तार पृष्ठ तक पहुंच (गतिशील डेटा)
- 22. माइक्रोसॉफ्ट एसडीके फ़ोल्डर को सुरक्षित रूप से स्थानांतरित करें
- 23. jQuery AJAX सफलता फ़ंक्शन से सरणी कैसे ठीक से करें?
- 24. बाहरी विद बिना jquery
- 25. सुरक्षित टोकन को सुरक्षित रूप से संग्रहीत करना
- 26. क्या संदर्भ द्वारा डिफ़ॉल्ट तर्क तक पहुंच सुरक्षित है?
- 27. jQuery .globalEval() फ़ंक्शन
- 28. jquery में AJAX() फ़ंक्शन का उपयोग बाहरी पृष्ठ के भाग को div
- 29. JQuery फ़ंक्शन
- 30. सेटलोकेल थ्रेड-सुरक्षित फ़ंक्शन है?
यह इस बात से संबंधित है कि आपको लगता है कि यह संभव हो सकता है। आपको सुरक्षा और शोषण प्रक्रिया के बारे में और अधिक पढ़ना चाहिए। (ओह और मैंने आपको +1 दिया) – rook
कोई भी अनुशंसित पढ़ने? धन्यवाद! – man1