Web-инжиниринг

Taint


Модель безопасности

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

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

Объясним только основные моменты в принципах защиты информации в JavaScript, а поиск потенциально слабых мест оставим в качестве домашнего задания для наиболее пытливых читателей.

По умолчанию к защищенным в JavaScript данным относятся:

ОбъектСвойства

Document

cookie, domain, forms[], lastModified, links[], location, referer, title, URL



Form

action

document.forms[].elements[]

checked, defaultChecked, defaultValue, name, selectedIndex, toString, value

History

current,next,previous,toString(),all array elements

Location,
Link,
,Area

hash, host, hostname, href, pathname, port, protocol, search, toString()

Option

defaultSelected, selected, text, value

Window

defaultStatus,status

Защищенными эти данные являются с той точки зрения, что не может получить значения соответствующих атрибутов. Главным образом речь здесь идет о программе, которая пытается получить доступ к данным, которые определены на другой странице, отличной от той, в рамках которой данная программа исполняется. Например, к данным из другого окна.

В настоящее время известно три модели защиты: запрет на доступ(Navigator 2.0), taint model (Navigator 3.0), защита через Java (Navigator 4.0). Рассмотрение этих моделей и приемы программирования - это отдельный сложный и трудоемкий вопрос, требующий знаний и навыков программирования на языке Java, поэтому в рамках данного курса мы его рассматривать не будем.


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

Содержание раздела