javascript questions ब्राउज़र डेवलपर टूल को कैसे अक्षम करें?




javascript programs (8)

उस समय अपडेट करें (2015) जब यह उत्तर पोस्ट किया गया था, तो यह चाल संभव थी। अब (2017) ब्राउज़र परिपक्व हैं। चाल के बाद अब काम नहीं करता है!

हाँ यह संभव है। क्रोम में सभी कंसोल कोड लपेटता है

with ((console && console._commandLineAPI) || {}) {
  <code goes here>
}

... इसलिए साइट फेंकने के लिए console._commandLineAPI को फिर से परिभाषित करती है:

Object.defineProperty(console, '_commandLineAPI',
   { get : function() { throw 'Nooo!' } })

यह मुख्य चाल है!

मैं वर्तमान में एक वेब अनुप्रयोग विकसित कर रहा हूं और चूंकि इसके पास एक डेटाबेस तक पहुंच है, इसलिए मुझे फ़ायरफ़ॉक्स में सफारी, क्रोम, फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर और फ़ायरबग से डेवलपर टूल को अक्षम करने की क्षमता की आवश्यकता है और सभी समान अनुप्रयोग। क्या इसे करने का कोई तरीका है?

नोट: डेटाबेस द्वारा प्रदान किए गए AJAX ढांचे के लिए आवश्यक है कि डेटाबेस को वेब पैरामीटर में दिया गया कुछ भी संशोधित किया जा सके और जो कुछ भी इसे रिटर्न करता है वह जावास्क्रिप्ट में संभाला जा सके। इसलिए जब यह किसी मान को देता है कि उपयोगकर्ता के पास वेबसाइट के किसी निश्चित हिस्से तक पहुंच है या नहीं, तो उसे जावास्क्रिप्ट में संभालना होगा, जिसे डेवलपर टूल तब तक एक्सेस कर सकते हैं। तो यह आवश्यक है।

अद्यतन: आप में से उन लोगों के लिए अभी भी गलत धारणाएं करने के बारे में सोचने के लिए, मैंने विक्रेता से पूछा था। नीचे उनकी प्रतिक्रिया है:

जोखिम को कम करने के तरीकों के लिए यहां कुछ सुझाव दिए गए हैं:

1) कोड को obfuscate करने के लिए एक जावास्क्रिप्ट Obfuscator का उपयोग करें और केवल बेचा आवेदन के साथ obfuscated संस्करण प्रदान करते हैं; संपादन करने के लिए अपने लिए गैर obfuscated संस्करण रखें। यहां एक ऑनलाइन obfuscator है: मैं जावास्क्रिप्ट को कैसे रोक सकता / सकती हूं? http://en.wikipedia.org/wiki/Obfuscated_code http://javascriptobfuscator.com/default.aspx

2) कम वर्णनात्मक नाम का प्रयोग करें; 'security.js' के बजाय 'security.js' की बजाय 'repeetaskasks.js' शायद इस प्रकार की जानकारी को किसी भी महत्वपूर्ण के रूप में देखकर किसी और के सामने खड़ा होगा।



Fiddler जैसे टूल्स के बारे में मत भूलना। यहां तक ​​कि यदि आप सभी ब्राउज़रों के कंसोल को लॉक करते हैं, तो http अनुरोधों को क्लाइंट पर संशोधित किया जा सकता है, भले ही आप HTTPS पर जाएं। फिडलर ब्राउज़र से अनुरोधों को कैप्चर कर सकता है, उपयोगकर्ता इसे संशोधित कर सकता है और दुर्भावनापूर्ण इनपुट के साथ फिर से खेल सकता है। जब तक आप अपने AJAX अनुरोधों को सुरक्षित न करें, लेकिन मुझे यह समझने की विधि नहीं है कि यह कैसे करें।

किसी भी ब्राउज़र से प्राप्त किसी भी इनपुट पर भरोसा न करें।


इस मस्तिष्क-मृत का आपका विकास वातावरण कोई रास्ता नहीं है। यह सिर्फ नहीं हो सकता है।

मैं दृढ़ता से अपने मालिक को ईमेल करने की अनुशंसा करता हूं:

  • प्रशिक्षण / सीखने के लिए कार्यक्रम में एक या दो सप्ताह की मांग।
  • सर्वर-साइड सत्यापन को निष्पादित करने के तरीके को जानने के लिए अपने विक्रेता के साथ पर्याप्त समर्थन टिकटों की मांग।
  • एक स्पष्ट चेतावनी है कि यदि उपकरण सर्वर-साइड सत्यापन नहीं कर सकता है, तो वॉल स्ट्रीट जर्नल के सामने वाले पृष्ठ पर आपको मजा आएगा जब आपका पूरा डेटाबेस लीक / नष्ट हो जाएगा / आदि।

नहीं, आप यह नहीं कर सकते।

डेवलपर मेनू क्लाइंट साइड पर है और उपयोगकर्ता के ब्राउज़र द्वारा प्रदान किया जाता है।

इसके अलावा ब्राउज़र डेवलपर के पास आपके सर्वर साइड डेटाबेस कोड से कोई लेना देना नहीं चाहिए, और यदि ऐसा होता है, तो आपको कुछ मायाजर पुनर्गठन की आवश्यकता होती है।


ब्रैंडन,

आप ऐसा कुछ कर सकते हैं, यह एक बहुत ही बुनियादी विचार है, आप इसे करके मूल कोड ओवरराइड कर सकते हैं, यह सटीक नहीं है जिसे आप ढूंढ रहे हैं, आपने इससे विकसित किया है

delete window.console

console.log('test'); // Noting will work

यदि आपके ढांचे के लिए आवश्यक है कि आप ग्राहक में प्राधिकरण करें, तो ...

आपको अपना ढांचा बदलना होगा

जब आप जंगली में एक आवेदन डालते हैं, जहां उपयोगकर्ता जिन पर आप भरोसा नहीं करते हैं, वे इसका उपयोग कर सकते हैं; आपको रेत में एक रेखा खींचना चाहिए।

  • आपके पास भौतिक हार्डवेयर है; और एक मजबूत दरवाजे के पीछे ताला लगा सकते हैं। आप यहां कुछ भी कर सकते हैं जो आपको पसंद है; यह आपके डेटाबेस को रखने के लिए और प्राधिकरण कार्यों को निष्पादित करने के लिए एक महान स्थान है यह तय करने के लिए कि आपके डेटाबेस के साथ कौन सा कर सकता है।
  • बाकि सब कुछ; क्लाइंट कंप्यूटर पर ब्राउज़र सहित; मोबाइल फोन; आपके कार्यालय की लॉबी में स्थित कियोस्क सुविधा। आप इन पर भरोसा नहीं कर सकते! कभी! ऐसा कुछ भी नहीं है जिसका आप कर सकते हैं इसका मतलब है कि आप पूरी तरह से सुनिश्चित हो सकते हैं कि ये मशीनें आपको और आपके ग्राहकों को पैसे से धोखा देने के लिए झूठ नहीं बोल रही हैं। आप इसे नियंत्रित नहीं करते हैं, इसलिए आप कभी भी यह जानने की उम्मीद नहीं कर सकते कि क्या हो रहा है।

असल में यह किसी भी तरह से संभव है ( how-does-facebook-disable-developer-tools ), लेकिन यह आपके डेटा की सुरक्षा के लिए बहुत बुरा विचार है। अटैकर हमेशा कुछ अन्य (खुले, स्वयं लिखित) इंजनों का उपयोग कर सकता है जिन पर आपका कोई नियंत्रण नहीं है। यहां तक ​​कि जावास्क्रिप्ट obfuscation केवल आपके ऐप की एक बिट क्रैकिंग धीमा कर सकता है, लेकिन यह व्यावहारिक रूप से कोई सुरक्षा भी देता है।

अपने डेटा को सुरक्षित करने का एकमात्र उचित तरीका सर्वर पक्ष पर सुरक्षित कोड लिखना है। और याद रखें, कि अगर आप किसी को कुछ डेटा डाउनलोड करने की अनुमति देते हैं, तो वह जो चाहें उसके साथ कर सकता है।





javascript