questions - javascript programs




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

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

नोट: डेटाबेस द्वारा प्रदान किए गए 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' शायद इस प्रकार की जानकारी को किसी भी महत्वपूर्ण के रूप में देखकर किसी और के सामने खड़ा होगा।



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

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

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

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

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

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


नहीं। अपने अंतिम उपयोगकर्ताओं के लिए डेवलपर टूल्स को अक्षम करना संभव नहीं है।

यदि आपका एप्लिकेशन असुरक्षित है यदि उपयोगकर्ता के पास डेवलपर टूल तक पहुंच है, तो यह केवल सादा असुरक्षित है।


ब्रैंडन,

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

delete window.console

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

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

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


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

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

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





javascript