टेंट चेकिंग: Difference between revisions

From Vigyanwiki
(Created page with "टेंट चेकिंग कुछ कंप्यूटर प्रोग्रामिंग प्रोग्रामिंग भाषा , जैस...")
 
m (Deepak moved page दागी जाँच to टेंट चेकिंग without leaving a redirect)
(No difference)

Revision as of 14:36, 27 June 2023

टेंट चेकिंग कुछ कंप्यूटर प्रोग्रामिंग प्रोग्रामिंग भाषा , जैसे कि पर्ल, में एक विशेषता है।[1] रूबी प्रोग्रामिंग भाषा[2] या बैलेरिना (प्रोग्रामिंग भाषा)[3] दुर्भावनापूर्ण उपयोगकर्ताओं को होस्ट कंप्यूटर पर कमांड निष्पादित करने से रोककर सुरक्षा बढ़ाने के लिए डिज़ाइन किया गया। दागी जांच मुख्य रूप से उन वेब साइटों से जुड़े विशिष्ट सुरक्षा जोखिमों को उजागर करती है जिन पर SQL इंजेक्शन या बफ़र अधिकता दृष्टिकोण जैसी तकनीकों का उपयोग करके हमला किया जाता है।

सिंहावलोकन

टेंट चेकिंग के पीछे की अवधारणा यह है कि कोई भी वेरिएबल जिसे किसी बाहरी उपयोगकर्ता द्वारा संशोधित किया जा सकता है (उदाहरण के लिए प्रपत्र (वेब) में किसी फ़ील्ड द्वारा सेट किया गया वेरिएबल) एक संभावित सुरक्षा जोखिम पैदा करता है। यदि वह चर (प्रोग्रामिंग) एक अभिव्यक्ति में प्रयोग किया जाता है जो एक दूसरे चर को सेट करता है, तो वह दूसरा चर अब भी संदिग्ध है। दागी जाँच उपकरण तब चर द्वारा चर को आगे बढ़ा सकता है जो चर की एक सूची बनाते हैं जो संभावित रूप से बाहरी इनपुट से प्रभावित होते हैं। यदि इनमें से किसी भी चर का उपयोग खतरनाक कमांड (जैसे SQL डेटाबेस या होस्ट कंप्यूटर सूत्र को सीधे कमांड) को निष्पादित करने के लिए किया जाता है, तो दागी परीक्षक चेतावनी देता है कि प्रोग्राम संभावित रूप से खतरनाक दागी चर का उपयोग कर रहा है। कंप्यूटर प्रोग्रामर खतरनाक इनपुट के चारों ओर एक सुरक्षित दीवार खड़ी करने के लिए प्रोग्राम को फिर से डिज़ाइन कर सकता है।

दागी जाँच को गैर-हस्तक्षेप (सुरक्षा) | गैर-हस्तक्षेप या सूचना प्रवाह (सूचना सिद्धांत) की अधिक सामान्य अवधारणा के पूर्ण सत्यापन के रूढ़िवादी अनुमान के रूप में देखा जा सकता है।[4] क्योंकि किसी सिस्टम में सूचना प्रवाह को उस सिस्टम के एकल निष्पादन ट्रेस की जांच करके सत्यापित नहीं किया जा सकता है,[5] दागी विश्लेषण के परिणाम आवश्यक रूप से उस प्रणाली की सूचना प्रवाह विशेषताओं के बारे में अनुमानित जानकारी को दर्शाएंगे जिस पर इसे लागू किया गया है।[6]


उदाहरण

निम्न खतरनाक पर्ल कोड के मान की जाँच न करके एक बड़ी SQL इंजेक्शन भेद्यता खोलता है $name चर:

#!/usr/bin/perl
my $name = $cgi->param("name");  # Get the name from the browser
...
$dbh->{TaintIn} = 1;
$dbh->execute("SELECT * FROM users WHERE name = '$name';"); # Execute an SQL query

यदि टेंट चेकिंग चालू है, तो पर्ल कमांड चलाने से मना कर देगा और एक त्रुटि संदेश के साथ बाहर निकल जाएगा, क्योंकि SQL क्वेरी में एक दूषित चर का उपयोग किया जा रहा है। दागी जांच के बिना, एक उपयोगकर्ता प्रवेश कर सकता था foo'; DROP TABLE users --, जिससे एक कमांड चल रहा है जो संपूर्ण डेटाबेस तालिका को हटा देता है। $name के दागी मान को SQL स्ट्रिंग शाब्दिक में एन्कोड करना और SQL क्वेरी में परिणाम का उपयोग करना अधिक सुरक्षित होगा, यह गारंटी देता है कि कोई खतरनाक कमांड एम्बेडेड नहीं है $name मूल्यांकन किया जाएगा। इसे प्राप्त करने का दूसरा तरीका एक क्वेरी के लिए सभी चर इनपुट को साफ करने के लिए एक तैयार कथन का उपयोग करना है।

ध्यान देने वाली एक बात यह है कि पर्ल डीबीआई को सेट करने के लिए एक की आवश्यकता होती है TaintIn एक डेटाबेस हैंडल की विशेषता के साथ-साथ किसी के SQL स्ट्रिंग्स की जांच करने के लिए टेंट मोड को सक्षम करना।[7]


इतिहास

पर्ल ने कम से कम संस्करण 3.0 (1989 में जारी) से निर्धारित समय में दागी होने का समर्थन किया,[8] हालांकि यह संस्करण 5.0 तक नहीं था (1994 में जारी)[8]कि -T बदलना[1]टैनिंग को एक ही रनटाइम में एकीकृत करते हुए पेश किया गया था।

1996 में, नेटस्केप ने नेटस्केप नेविगेटर 3 में जावास्क्रिप्ट के लिए डेटा टैनिंग लागू किया।[9] हालांकि, चूंकि समर्थन को प्रायोगिक माना गया था, इसलिए इसे अक्षम (सक्रिय करने के लिए उपयोगकर्ता के हस्तक्षेप की आवश्यकता होती है) और इससे लाभान्वित होने के लिए स्क्रिप्ट को संशोधित करने के लिए पृष्ठ लेखकों की आवश्यकता होती है। अन्य ब्राउज़र विक्रेताओं ने कार्यक्षमता को कभी लागू नहीं किया।

संदर्भ

  1. 1.0 1.1 "पर्लसेक - पर्ल सुरक्षा". Perl 5 development team. Retrieved 2012-05-20.
  2. प्रोग्रामिंग रूबी --- व्यावहारिक प्रोग्रामर गाइड. Addison Wesley Longman. 2001. pp. 253 (Ch. 20).
  3. Inc, WSO2. "बैलेरिना - टेंट चेकिंग". ballerina.io. Retrieved 2022-02-15. {{cite web}}: |last= has generic name (help)
  4. A. Sabelfeld and A. C. Myers, "Language-based information-flow security", IEEE Journal on Selected Areas in Communications, 2003.
  5. J. Ligatti, L. Bauer, D. Walker. "Edit automata: Enforcement mechanisms for run-time security policies". International Journal of Information Security, 2005
  6. T. Terauchi and A. Aiken. "Secure information flow as a safety problem". In 12th International Static Analysis Symposium, September 2005.
  7. "डीबीआई - पर्ल के लिए डाटाबेस स्वतंत्र इंटरफेस". Retrieved 2020-08-29.
  8. 8.0 8.1 "पर्लहिस्ट - पर्ल इतिहास रिकॉर्ड". Perl 5 development team. Retrieved 2020-08-29.
  9. Flanagan, David (1997). JavaScript: The Definitive Guide (2nd ed.). O'Reilly & Associates. p. 321. ISBN 9781565922341. [...] the data-tainting security model is experimental in Navigator 3.0, and is not enabled by default. It is expected to be the default security model in version 4.0 of Navigator, however.


बाहरी संबंध