что такое песочница в JavaScript? - PullRequest
5 голосов
/ 12 августа 2011

Я понимаю термин песочница.Но мои ограниченные навыки в JS не могут помочь мне понять, что такое песочница в JS.Итак, что же такое песочница?Помимо безопасности, зачем нам песочница JS?

Ответы [ 3 ]

2 голосов
/ 12 августа 2011

Песочница - это создание области действия, в которой не может работать никакая другая часть приложения (если не предоставлена ​​возможность).Более конкретно, это обычно область функций, которая предоставляет ограниченное подмножество того, что на самом деле происходит внутри нее.

Одна библиотека, основанная на идее песочниц, - это 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.
});

Преимущества песочниц заключаются в том, чтобы в первую очередь уменьшить сложность приложения: поскольку песочницы являются неизменяемыми, их гораздо проще рассуждать и проверять.Они также улучшают безопасность во время выполнения, так как хорошо спроектированная песочница должна работать как черный ящик для других скриптов, выполняющихся на странице.Он не защищает от всех возможных атак, но защищает от многих простых.

2 голосов
/ 12 августа 2011

песочница javascript делает именно то, что вы сказали.Это ограничивает область действия скрипта.Есть также преимущества с точки зрения виртуализации ресурсов, которые может вызывать скрипт.Это позволяет хосту песочницы распределять эти ресурсы для повышения производительности и, скажем, останавливать бесконечный цикл сценария, приводящий к краху всего браузера.

0 голосов
/ 12 августа 2011

Песочница создает ограниченную область для использования скриптом. Предполагая, что вы пишете код для веб-сайта, стоит избегать внесения изменений в работающий сайт, если вы не уверены, будут ли они работать именно так, как вы ожидаете, и невозможно быть по-настоящему уверенным без тестирования. Даже если он работает должным образом, если у вас есть шанс внести ряд изменений в JS, пока вы не настроите его так, как вам нравится, вы можете легко помешать любому, кто пытается использовать сайт во время его обновления.

Кроме того, из-за ограниченного характера песочницы гораздо проще определить, что сломано, когда вы что-то ломаете.

...