3. सीमाएं अडजस्ट करें

सैंडबॉक्स नीति, सैंडबॉक्स को खास सिस्टम कॉल करने से रोकती है. इस तरह, वह हमले की सरफ़ेस को कम करती है. हालांकि, कोई हमलावर किसी प्रोसेस को हमेशा के लिए चलाकर, अनचाहे असर डाल सकता है. इसके अलावा, वह रैम और अन्य संसाधनों को खत्म कर सकता है.

इस जोखिम का समाधान करने के लिए, Sandboxee डिफ़ॉल्ट रूप से सख्त निष्पादन सीमाओं के तहत काम करता है. अगर इन डिफ़ॉल्ट सीमाओं की वजह से आपके प्रोग्राम को सही तरीके से पूरा करने में समस्याएं आती हैं, तो आपके पास sandbox2::Limits क्लास का इस्तेमाल करके, एक्सक्यूटर ऑब्जेक्ट पर limits() को कॉल करके इनमें बदलाव करने का विकल्प होता है.

नीचे दिया गया कोड स्निपेट, सीमा को घटाने या बढ़ाने के कुछ उदाहरण दिखाता है. सभी उपलब्ध विकल्पों को limits.h हेडर फ़ाइल में शामिल किया गया है.

// Restrict the address space size of the sandboxee to 4 GiB.
executor->limits()->set_rlimit_as(4ULL << 30);
// Kill sandboxee with SIGXFSZ if it writes more than 1 GiB to the filesystem.
executor->limits()->set_rlimit_fsize(1ULL << 30);
// Number of file descriptors which can be used by the sandboxee.
executor->limits()->set_rlimit_nofile(1ULL << 10);
// The sandboxee is not allowed to create core files.
executor->limits()->set_rlimit_core(0);
// Maximum 300s of real CPU time.
executor->limits()->set_rlimit_cpu(300);
// Maximum 120s of wall time.
executor->limits()->set_walltime_limit(absl::Seconds(120));

sandbox2::Limits क्लास के इस्तेमाल के उदाहरण के लिए, टूल का उदाहरण देखें.