VT100 टर्मिनल (जो सभी आधुनिक टर्मिनल एमुलेटर कुछ हद तक अनुकरण करते हैं) ने कई समस्याग्रस्त आदेशों का समर्थन किया, लेकिन आधुनिक एमुलेटर या वितरण अधिक समस्याग्रस्त और कम उपयोगी वाले को अक्षम करते हैं। यहां संभावित जोखिम से बचने के दृश्यों की एक गैर-विस्तृत सूची है (उन लोगों को शामिल नहीं है जो केवल प्रदर्शन को किसी तरह से अपठनीय बनाते हैं):
- HD मूर द्वारा रिपोर्ट की गई rxvt और Eterm में मनमानी लॉग फ़ाइल कमांड । ये वास्तव में प्रमुख कीड़े हैं, सौभाग्य से लंबे समय से तय।
- उत्तर-वापसी आदेश, जिसे रिटर्न टर्मिनल स्थिति के रूप में भी जाना जाता है, द्वारा
ENQ
( Ctrl+E
)। यह टर्मिनल में पाठ सम्मिलित करता है जैसे कि उपयोगकर्ता ने इसे टाइप किया था। हालाँकि, यह पाठ हमलावर के नियंत्रण में नहीं है: यह टर्मिनल का अपना नाम है, आम तौर पर ऐसा कुछ xterm
या screen
। मेरे सिस्टम पर (डेबियन निचोड़), xterm डिफ़ॉल्ट रूप से खाली स्ट्रिंग लौटाता है (यह answerbackString
संसाधन द्वारा नियंत्रित होता है )।
- भेजें डिवाइस आदेशों
ESC [ c
और मित्रों को पेश करता है। टर्मिनल जवाब देता है ESC [ … c
(जहां …
अंक और ASCII विराम चिह्न केवल हो सकते हैं)। यह कुछ टर्मिनल क्षमताओं को क्वेरी करने का एक तरीका है, जो ज्यादातर अप्रचलित है लेकिन शायद पुराने अनुप्रयोगों द्वारा उपयोग किया जाता है। फिर से, टर्मिनल की प्रतिक्रिया उपयोगकर्ता इनपुट से अप्रभेद्य है, लेकिन यह हमलावर के नियंत्रण में नहीं है। नियंत्रण अनुक्रम एक फ़ंक्शन कुंजी की तरह लग सकता है, लेकिन केवल अगर उपयोगकर्ता के पास एक असामान्य कॉन्फ़िगरेशन है (मेरे द्वारा सामना की गई सामान्य सेटिंग्स में से कोई भी एक वैध फ़ंक्शन कुंजी एस्केप अनुक्रम नहीं है जो टर्मिनल प्रतिक्रिया का एक उपसर्ग है)।
- विभिन्न डिवाइस नियंत्रण फ़ंक्शन (डीसीएस बच जाता है, जिसके साथ शुरुआत होती है
ESC P
)।
- मुझे नहीं पता कि
DECUDK
एक विशिष्ट टर्मिनल एमुलेटर पर उपयोगकर्ता (निर्धारित उपयोगकर्ता-निर्धारित कुंजी) के माध्यम से क्या नुकसान हो सकता है ।
DECRQSS
(रिक्वेस्ट स्टेटस स्ट्रिंग) अभी तक एक और कमांड है जिसके लिए टर्मिनल एक एस्केप सीक्वेंस के साथ प्रतिक्रिया करता है, इस समय के साथ शुरू होता है \eP
; यह तब से समस्याग्रस्त हो सकता है क्योंकि \eP
एक वैध कुंजी ( Alt+ Shift+ P) है।
- Xterm में दो और प्रायोगिक विशेषताएं हैं:
ESC P + p …
और ESC P + q …
, टर्मकैप स्ट्रिंग्स को प्राप्त करने और सेट करने के लिए। विवरण से, यह कम से कम फ़ंक्शन कुंजियों के प्रभाव को संशोधित करने के लिए उपयोग किया जा सकता है।
- कई स्टेटस रिपोर्ट कमांड:
ESC [ … n
(डिवाइस स्टेटस रिपोर्ट)। टर्मिनल भागने के क्रम के साथ प्रतिक्रिया करता है। इनमें से अधिकांश एस्केप सीक्वेंस कुंजी एस्केप सीक्वेंस के कार्य के अनुरूप नहीं हैं। एक समस्याग्रस्त दिखता है: करने के लिए रिपोर्ट ESC [ 6 n
फार्म की है जहां और अंकों दृश्यों रहे हैं, और ऐसा दिखाई दे सकता कुछ संशोधक के साथ।ESC [ x ; y R
x
y
F3
- विंडो हेरफेर कमांड
ESC [ … t
।
- इनमें से कुछ xterm विंडो को आकार बदलने, आइकॉनिक होने आदि के लिए अनुमति देते हैं, जो विघटनकारी है।
- इनमें से कुछ के कारण टर्मिनल या तो भागने के क्रम से प्रतिक्रिया करता है। इन भागने दृश्यों में से अधिकांश कम जोखिम वाले लग रहे हैं, लेकिन वहाँ दो खतरनाक आदेशों हैं: के जवाब
ESC [ 2 0 t
और ESC [ 2 1 t
क्रमशः टर्मिनल विंडो के आइकन लेबल और शीर्षक में शामिल हैं, और हमलावर इन चुन सकते हैं।
- कम से कम डेबियन निचोड़ के तहत, xterm डिफ़ॉल्ट रूप से इन आदेशों की उपेक्षा करता है; उन्हें
allowWindowOps
संसाधन सेट करके या चुनिंदा रूप से disallowedWindowOps
संसाधन के माध्यम से सक्षम किया जा सकता है । Ubuntu 10.04 के तहत गनोम-टर्मिनल भी डिफ़ॉल्ट रूप से शीर्षक उत्तरपुस्तिका को लागू करता है। मैंने अन्य टर्मिनलों या संस्करणों की जाँच नहीं की है।
- टर्मिनल शीर्षक या आइकन नाम सेट करने के लिए आदेश देता है। Xterm और अधिकांश अन्य एक्स टर्मिनलों के तहत, वे हैं । स्क्रीन के नीचे, भागने का क्रम है । मुझे लगता है कि इन आदेशों की चिंता खत्म हो गई है। हालांकि वे कुछ मात्रा में शरारत की अनुमति देते हैं, किसी भी वेब पेज पर एक ही मुद्दा है। पूरी तरह से अपने शीर्षक के आधार पर एक खिड़की पर अभिनय करना और उसकी कक्षा पर नहीं एक फ़ाइल खोलने के लिए एक नाम है जिसका नाम आपको एक अविश्वसनीय पार्टी द्वारा दिया गया था, या शेल स्क्रिप्ट में एक चर विस्तार को उद्धृत नहीं करना, या नाक पर एक पागल कुत्ते को थपथपाना। - काटे जाने पर शिकायत न करें।
ESC ] digit ; title ESC \
ESC k title ESC \
मुझे वार्निश की प्रतिक्रिया असंगत लगती है। ऐसा लगता है कि यह या तो दोष को शिफ्ट करने की कोशिश कर रहा है, या सुरक्षा नज़ी मोड में (कोई सुरक्षा चिंता, वास्तविक या नहीं, एक सुविधा को ब्लैकबॉल करना उचित है)।
सामान्य रूप से टर्मिनल-रिस्पांस-एस्क्यूज़ के ज्ञान पर नियमित अंतराल पर सवाल उठाए गए हैं, लेकिन अभी भी किसी भी प्रमुख टर्मिनल इम्यूलेशन प्रोग्राम ने इन अनुक्रमों को छोड़ने के लिए फिट नहीं देखा है, संभवतः 1970 के दशक की तकनीक का उपयोग नहीं करने के साथ संगतता पर एक गुमराह करने की कोशिश में। (…)
लॉगफाइल्स लिखने वाले किसी भी और सभी कार्यक्रमों को दोष देने के बजाय, यह सुरक्षा के दृष्टिकोण से बहुत अधिक उत्पादक होगा, बेवकूफ चीजें करने से रोकने के लिए टर्मिनल इम्यूलेशन प्रोग्राम प्राप्त करने के लिए, और इस तरह एक बार और अन्य सुरक्षा समस्याओं को ठीक करें। सबके लिए।
उत्तरपुस्तिकाओं में से कई उपयोगी विशेषताएं हैं: एक एप्लिकेशन को कर्सर की स्थिति और खिड़की के आकार जैसी चीजों को जानने की आवश्यकता होती है। विंडो टाइटल सेट करना भी बहुत उपयोगी है। ioctl
इन पर कॉल के लिए पूरी तरह से भरोसा करना संभव होगा , हालांकि इसके लिए अतिरिक्त ioctl
कॉल और उपयोगिताओं की आवश्यकता होगी ताकि इन कॉलों को दर्ज किया जा सके और उन्हें फाइल डिस्क्रिप्टर से गुजरने वाले यूनिक्स-शैली के पाठ में स्थानांतरित किया जा सके। थोड़े से लाभ के लिए इन इंटरफेस को बदलना अब बहुत काम आएगा।
पाठ फ़ाइलों में गैर-मुद्रण वर्ण जैसे नियंत्रण वर्ण शामिल नहीं हैं। लॉग फाइलें आम तौर पर पाठ फाइलें होने की उम्मीद है। लॉग फ़ाइलों में नियंत्रण वर्ण नहीं होना चाहिए।
आप चिंतित हैं कि एक फ़ाइल से बच दृश्यों शामिल हो सकता है, एक संपादक में खोलें, या के साथ यह देखने less
के बिना -r
या -R
विकल्प है, या यह देखने के माध्यम से cat -v
।