Песочница - это создание области действия, в которой не может работать никакая другая часть приложения (если не предоставлена возможность).Более конкретно, это обычно область функций, которая предоставляет ограниченное подмножество того, что на самом деле происходит внутри нее.
Одна библиотека, основанная на идее песочниц, - это YUI3.Основной единицей приложения является песочница для экземпляра YUI:
var Y = YUI(); // creates a configurable YUI instance
// Creates a sandbox for one part of your application,
// including the 'node' module.
Y.use('node', function(Z) {
// Z is a YUI instance that's specific to this sandbox.
// Operations inside it are protected from outside code
// unless exposed explicitly. Any modules you request in
// use statement will be separately instanced just for
// this sandbox (in this case, the 'node' module)
//
// That way, if another part of your application decides
// to delete Z.Node (or worse, replace it with a
// malicious proxy of Z.Node) the code you've written
// here won't be affected.
});
Преимущества песочниц заключаются в том, чтобы в первую очередь уменьшить сложность приложения: поскольку песочницы являются неизменяемыми, их гораздо проще рассуждать и проверять.Они также улучшают безопасность во время выполнения, так как хорошо спроектированная песочница должна работать как черный ящик для других скриптов, выполняющихся на странице.Он не защищает от всех возможных атак, но защищает от многих простых.