Wiki-учебник по веб-технологиям: JavaScript/ВключениеИОтключениеРазрушенияОтдельныхЭлементовДанных ...

Главная | Каталог |

Включение и отключение разрушения отдельных элементов данных


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

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

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

untaintedStat=untaint(window.defaultStatus)
// untaintedStat может теперь высылаться по URL или методом form post других скриптов


Ни taint, ни untaint не модифицируют свой аргумент; обе функции возвращают маркированную или немаркированную ссылку на объект argument или копию значения примитивного типа (number или boolean). Эта маркировка называетсякод разрушения. JavaScript присваивает уникальный код разрушения каждому элементу данных сервера. Неразрушенные данные имеют код разрушения identity (null).