2012-06-23 6 views

ответ

2

Включается функция безопасности. Сценарий таков:

  1. App загрузка HTML из Интернета (через XHR, например), который включает в себя данные выигрыша-контроль, беспроигрышные-параметры данных или данные-обоюдную привязку атрибуты
  2. HTML является добавлены к DOM
  3. WinJS.UI.processAll или WinJS.Binding.processAll называется на этом HTML
  4. в * данные атрибуты-WIN-функции, указать получить обманным в вызывающей Eval (или что-то столь же зло)
  5. Приложение пользователя принадлежит

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

Самое главное, что ни одна из функций WinRT или eval не помечена так, что вы не можете получить загруженный HTML-код для прямого вызова WinRT (раньше, вы могли бы).

Этот режим не был включен по умолчанию в RC, чтобы дать разработчикам время для настройки своего кода до того, как они сломаются, но это поведение, скорее всего, будет включено по умолчанию в RTM.

+0

если только MSDN был таким четким и лаконичным, как ваш ответ .. спасибо! :) +1 –

+0

И что мешает вредоносному коду определять «myEvilFunction.supportedForProcessing = true;»? – bugventure

+0

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

Смежные вопросы