Спасибо ... в данный момент я слишком занят, чтобы поближе взглянуть и убедиться, что он по-прежнему позволит мне размещать безопасный HTML-код на странице, а не выходить из него, поскольку моя цель - разрешить предварительный просмотр HTML результатов измененного запроса, но Кажется, это может быть полезно. Я действительно думаю, что JavaScript нуждается в такой библиотеке, если это не так. Я не хочу совершать ненужные обходы, особенно если речь идет о автономном приложении. Спасибо!

е чем все скажут мне, что я не должен проводить санитарную обработку на стороне клиента (на самом деле я собираюсь сделать это на клиенте, хотя это может работать и в SSJS), позвольте мне уточнить, что я пытаюсь сделать.

Я хотел бы что-то вродеGoogle Caja или жеHTMLPurifier но для JavaScript: подход безопасности на основе белого списка, который обрабатывает HTML и CSS (конечно, еще не вставлен в DOM, что небезопасно, но сначала получается в виде строки), а затем выборочно отфильтровывает небезопасные теги или атрибуты, игнорируя их или, необязательно, включение их в качестве экранированного текста или иным образом позволяющее сообщать о них приложению для дальнейшей обработки, в идеале в контексте. Было бы здорово, если бы он мог уменьшить любой JavaScript до безопасного подмножества, как в Google Caja, но я знаю, что это потребовало бы много.

Мой пример использования - доступ к ненадежным данным XML / XHTML, полученным черезJSONP (данные из вики Mediawiki перед обработкой вики, что позволяет использовать необработанный, но ненадежный ввод XML / HTML) и позволяет пользователю выполнять запросы и преобразования к этим данным (XQuery, jQuery, XSLT и т. д.), используя преимущества HTML5 для автономной работы использовать, хранилище IndexedDB и т. д., что позволяет затем просматривать результаты на той же странице, где пользователь просматривал источник ввода и строил или импортировал свои запросы.

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

Это определенно должно быть выполнимо, но мне интересно, есть ли библиотеки, которые уже делают это.

И если я застрял, реализуя это самостоятельно (хотя мне любопытно в любом случае), я хотел бы иметь доказательства того,innerHTML или создание / добавление DOM ДО вставки в документ является безопасным во всех отношениях. Например, могут ли события быть вызваны случайно, если я впервые запустилDOMParser или полагался на разбор HTML браузера с помощьюinnerHTML добавить необработанный HTML-код во вставленный div? Я считаю, что это должно быть безопасно, но не уверен, что события манипуляции DOM могут произойти как-то до вставки, что может быть использовано.

Конечно, после этого необходимо сконструировать созданный DOM, но я просто хочу убедиться, что могу безопасно построить сам объект DOM для более удобного обхода, а затем беспокоиться о фильтрации нежелательных элементов, атрибутов и значений атрибутов.

Спасибо!

Ответы на вопрос(0)

Ваш ответ на вопрос