Вы никогда не можете предполагать, что данные, предоставленные вам на стороне клиента, являются «чистыми» или «безопасными». Как вы правильно поняли, гнусные люди могут обойти ваш интерфейс и все его проверки.
Вы всегда должны настраивать свой интерфейс соответствующим образом. Проверяйте данные, настраивайте TinyMCE, чтобы разрешать только те типы тегов, которые вы хотите создать, и т. Д.
Однако, независимо от внешнего интерфейса, вам всегда нужно повторно проверять отправленный контент на сервере, чтобы быть в безопасности. Обойти эту потребность просто невозможно.
Существует много разных библиотек, которые вы можете использовать на стороне сервера для выполнения такого рода проверки / очистки, включая очиститель HTML, который упоминается в комментарии к вашему исходному сообщению.