Я заметил уязвимость XSS, над которой я работаю, чтобы решить, где jqxGrid будет отображать любую ячейку. Например: <a href="javascript:alert('test');">Hello</a>
. Поэтому моей мыслью было найти способ решить эту проблему. В настоящее время я перебираю данные для того, что нужно отображать, и есть функция рендеринга и функции cellrenderer, которую вы можете передать. Мой вопрос: как вернуть строку HTML, чтобы в ячейке отображался текст, указанный в аргументе 6.
У меня есть собственные сценарии очистки и сценарии удаления, которые я могу применить, но я подумал, что могу добавить значение в свойство textContent элемента HTML. Возможно ли это сделать?
Могу ли я сделать что-то вроде:
return "<div text-content='VALUE'></div>";
вместо:
return "<div>" + value + " </div>";
Есть ли версия JQXGrid для Angular6+, которую мы могли бы использовать, которая выиграет от политик угловых инъекций?
Лично я испытываю искушение просто сделать свою собственную версию этой сетки, но... для решения этой проблемы потребуется слишком много времени разработчиков.
Предположение: сервер проверяет это, и клиент делает то же самое. Тем не менее, я знаю, что мы все равно получим недействительный HTML как таковой. При этом предположим, что приведенное выше значение действительно содержит вредоносный код html/javascript.
textContent
, вместо узла HTML, который отображает. - person Fallenreaper   schedule 16.11.2018