Ваши шансы надежного обнаружения вредоносного кода путем сканирования введенного HTML-кода равны нулю. Существует так много возможных способов внедрения скрипта (включая искаженный HTML-код для браузера), и вы не сможете выбрать их все. Если крупные провайдеры веб-почты все еще после многих лет находят новые эксплойты, у вас нет шансов сделать это.
Белый список лучше, чем черный. Таким образом, вы могли бы вместо этого потребовать, чтобы ввод был XHTML, и проанализировать его, используя стандартный анализатор XML. Затем пройдитесь по DOM и проверьте, что каждый из элементов и атрибутов хорошо известен, и, если все в порядке, сериализуйте обратно в XHTML, который, исходя из известного DOM, не должен быть искажен. Надлежащий синтаксический анализатор XML с поддержкой Unicode также должен бесплатно отфильтровывать неприятные «слишком длинные последовательности UTF-8» (дыра в безопасности, влияющая на IE6 и более старые Opera).
Однако ... если вы разрешаете встраивать / объекты из любого домена, вы уже разрешаете полный доступ скрипта к вашей странице из внешних доменов, поэтому внедрение HTML-кода - это не ваше беспокойство. Плагины, такие как Flash, могут выполнять JavaScript без какой-либо хитрости.
Таким образом, вы должны ограничивать источник объектов заранее определенными хорошо известными доменами. И если вы уже делаете это, вероятно, проще просто позволить пользователю выбрать поставщика видео и идентификатор клипа, а затем преобразовать это в надлежащий, хорошо известный код для встраивания для этого поставщика. Например, если вы используете разметку, похожую на bbcode, традиционный способ разрешить пользователям включать клип на YouTube - это нечто [youtube] Dtzs7DSh [/ youtube].