Я не разработчик, но практикующий специалист по безопасности, поэтому прошу прощения за любые неточности.Короткий ответ с моей стороны - да, когда вы извлекаете и интерпретируете внешние данные, возникают угрозы безопасности.Это относится не только к HTML, но и к разбору XML или к любой форме содержимого, которое проходит через интерпретатор.Например, в AJAX результат XMLHttpRequest может выполнять некоторые действия от имени пользователя.Если файл выгружается, может произойти что-то подобное.
При создании приложения вы не сможете устранить все риски, но вы захотите снизить его до приемлемого уровня.Например, вместо включения внешнего кода, размещайте код самостоятельно.
Это относится и к вашей выборке XMLHttpRequest - откуда поступают данные?Больше риска связано с третьими сторонами и между доменами.Избегайте, если можете.Следует рассмотреть возможность блокировки совместного использования ресурсов между источниками с помощью политики, хотя Access-Control-Allow-Origin.HTTPS также не устраняет риск, поскольку, возможно, вы все равно не можете доверять третьей стороне, а HTTPS не полностью устраняет MIM-атаки.
Если, тем не менее, вы получаете то, что размещаете сами, и у вас есть доверенный каналчтобы получить, вы можете утверждать, что оставшийся риск невелик.
Что касается бонусного вопроса, я не уверен, будет ли это иметь большое значение.Я предполагаю, что с documentType = "text" вы получите длинную строку текста, которая в действительности является HTML-документом.Тогда что?Если вы все еще планируете его анализировать, сценарии могут выполняться.JSON.parse - это анализатор текста, который не будет загружать скрипты, но здесь, насколько я понимаю, вам все равно нужно подвергать себя синтаксическому анализу HTML.Решение, вероятно, состоит в том, чтобы убедиться, что вы можете доверять источнику.