2013-12-23 7 views
0

Я работаю над приложением, и мне нужно получить значение, которое будет возвращено свойством textContentdiv, если я вставил строку в div (пустой) с свойством innerHTML. Это для предварительного просмотра для пользователя. Очевидно, я мог бы сделать именно это, но я не могу запускать какие-либо скрипты из анализируемой строки HTML. Например, если строка содержала <img src="https://www.google.com/images/srpr/logo11w.png" onload="alert('hello')">, появится предупреждение.получить textContent from string

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

+0

Это может смутить меня. Все, что я могу сказать, это «Inline js is bad». https://www.google.com/search?q=Why+is+inline+js+bad%3F – m59

+1

Если вы довольны ограниченной поддержкой браузера, вы можете использовать Mozilla [HTML to DOM] (https: // developer.mozilla.org/en-US/Add-ons/Code_snippets/HTML_to_DOM). Существует также [DOMParser] (https://developer.mozilla.org/en-US/docs/Web/API/DOMParser?redirectlocale=en-US&redirectslug=DOM%2FDOMParser), но не уверен в поддержке этого. – RobG

+0

@RobG, это действительно должно работать, мы уже используем множество функций с очень ограниченной поддержкой. – Jack

ответ

0

Одна вещь, которую следует учитывать: где это материал, который просматривается исходя из?

Более чем вероятно, что это происходит из собственного браузера пользователя.

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

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

+0

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

+0

Я не думаю, что это связано с угрозой безопасности, OP интересуется только текстовым контентом и не хочет запускать встроенные скрипты. – RobG

+0

На самом деле это в основном для обеспечения безопасности. – Jack