सैंडबॉक्स से बाहर निकलने से रोकना
debug लाइब्रेरी की पहुँच, rawget/rawset के दुरुपयोग और upvalue लीकेज को रोकें।
सैंडबॉक्स से बाहर निकलने से रोकना, CoddyKit पर Lua Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Lua Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
एस्केप की समस्या
श्वेतसूची वाले वातावरण के बावजूद, रचनात्मक हमलावर वास्तविक वैश्विक वातावरण तक पहुँचने के तरीके खोज सकते हैं। यह पाठ ज्ञात एस्केप मार्गों और उन्हें बंद करने के तरीकों को समझाता है।
स्ट्रिंग मेटाटेबल का शोषण
Lua में स्ट्रिंग एक साझा मेटाटेबल रखती हैं, जो स्ट्रिंग पुस्तकालय को उजागर करता है। सैंडबॉक्स किया गया कोड किसी स्ट्रिंग का उपयोग करके string.rep का संदर्भ प्राप्त कर सकता है और वहाँ से अन्य पुस्तकालयों तक पहुँच सकता है।
-- Escape vector (before patching):
local s = "hello"
local getenv = s.rep -- reaches string library
-- Fix: use setmetatable on all sandboxed strings (not practical)
-- Better fix: override debug.getmetatable in the sandboxrawget/rawset के माध्यम से अवरोधन
यदि सैंडबॉक्स में rawget मौजूद है, तो कोड उसका उपयोग __index प्रतिबंधों को दरकिनार करके वास्तविक तालिकाओं से सीधे पढ़ने के लिए कर सकता है।
-- Fix: exclude rawget, rawset, rawequal, rawlen from the sandbox envdebug पुस्तकालय तक पहुँच
debug पुस्तकालय किसी भी अपवैल्यू को पढ़ और बदल सकता है, जिसमें _ENV भी शामिल है। इसे सैंडबॉक्स से पूरी तरह बाहर रखें।
package.loaded तालिका
यदि require या package उपलब्ध है, तो सैंडबॉक्स में चल रहा कोड पहले से लोड किए गए मॉड्यूल, जिनमें os और io शामिल हैं, तक पहुँच सकता है।
-- Fix: exclude require and package from the sandbox envकोरूटीन और पुनःसंचालन
होस्ट द्वारा पुनःसंचालित की गई सैंडबॉक्स की कोरूटीन का उपयोग स्थिति को बाहर भेजने के लिए किया जा सकता है। coroutine.wrap का सावधानी से उपयोग करें और सैंडबॉक्स की कोरूटीन को बढ़े हुए विशेषाधिकारों के साथ पुनःसंचालित न करें।
अपवैल्यू का अन्वेषण
डीबग लाइब्रेरी के बिना, सैंडबॉक्स में चल रहा कोड अपवैल्यू का अन्वेषण नहीं कर सकता। लेकिन यदि debug.getupvalue गलती से शामिल हो जाए, तो इसका उपयोग _G तक पहुँचने के लिए किया जा सकता है।
safeEnv पर __newindex
सैंडबॉक्स वातावरण की मेटाटेबल में एक __newindex जोड़ें, ताकि सैंडबॉक्स में चल रहा कोड सुरक्षित ग्लोबल्स को छिपाने वाले नए ग्लोबल्स न बना सके।
setmetatable(safeEnv, {
__newindex = function(_, k, v)
-- allow only whitelisted keys or reject
error("Global assignment not allowed: " .. k)
end
})गणित लाइब्रेरी के लिए प्रॉक्सी
वास्तविक math तालिका (जो मानक लाइब्रेरी के साथ मेटाटेबल साझा करती है) भेजने के बजाय, केवल आवश्यक फ़ंक्शन वाली उसकी उथली प्रतिलिपि बनाएँ।
स्वचालित एस्केप परीक्षण
एक फ़ज़िंग परीक्षण-संग्रह बनाए रखें, जो आपके सैंडबॉक्स के विरुद्ध ज्ञात एस्केप पैटर्न आज़माता हो। सैंडबॉक्स कोड में प्रत्येक बदलाव पर इसे चलाएँ।
बहु-स्तरीय सुरक्षा
कोई भी सैंडबॉक्स पूर्ण नहीं होता। सुरक्षा की कई परतें बनाएँ: प्रतिबंधित वातावरण + निर्देश सीमाएँ + मेमोरी सीमाएँ + OS-स्तरीय प्रक्रिया पृथक्करण (अलग उपप्रक्रिया या कंटेनर)।
OS-स्तरीय सैंडबॉक्स
अधिकतम सुरक्षा के लिए, Lua को OS-स्तरीय प्रतिबंधों वाली उपप्रक्रिया में चलाएँ: seccomp (Linux), App Sandbox (macOS), या केवल-पठन फ़ाइल सिस्टम वाला Docker।
सैंडबॉक्स एस्केप का प्रश्न
सैंडबॉक्स से rawget को बाहर रखना क्यों आवश्यक है?
पुनरावलोकन: सैंडबॉक्स एस्केप रोकना
सैंडबॉक्स से debug, rawget/rawset, package, require और load को बाहर रखें। सैंडबॉक्स वातावरण को __newindex से सुरक्षित करें। मूल तालिकाओं का संदर्भ देने के बजाय लाइब्रेरी तालिकाओं की प्रतिलिपि बनाएँ। अधिकतम सुरक्षा के लिए OS-स्तरीय पृथक्करण की परत जोड़ें।
एआई शिक्षक के साथ Lua सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 40
- पाठ
- 159
अक्सर पूछे जाने वाले प्रश्न
क्या “सैंडबॉक्स से बाहर निकलने से रोकना” पाठ निःशुल्क है?
हाँ — Lua Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “सैंडबॉक्स से बाहर निकलने से रोकना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Lua Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सैंडबॉक्स से बाहर निकलने से रोकना” में मैं क्या सीखूँगा?
debug लाइब्रेरी की पहुँच, rawget/rawset के दुरुपयोग और upvalue लीकेज को रोकें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Lua Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Lua Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Lua Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“सैंडबॉक्स से बाहर निकलने से रोकना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Lua Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Lua Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Lua 5.2+ में _ENV मॉडल
- प्रतिबंधित सैंडबॉक्स बनाना
- सैंडबॉक्स से बाहर निकलने से रोकना
- संसाधन सीमाएँ और इंस्ट्रुमेंटेशन