Esta é uma ótima preocupação.
Seu primeiro ponto de visita é o OWASP Top 10 (https://owasp.org/Top10/). Injeção de código é o terceiro maior problema na lista deles... mas temos que conhecer a todos para nos protejer do que estiver no nosso escopo. Veja:
- Broken Access Control
- Cryptographic Failures
- Injection
- Insecure Design
- Security Misconfiguration
- Vulnerable and Outdated Components
- Identification and Authentication Failures
- Software and Data Integrity Failures
- Security Logging and Monitoring Failures
- Server-Side Request Forgery
Entrando no link de cada item dá para ter um caminho de como resolver isso.
Especificamennte no seu caso, são duas as medidas a tomar.
A primeira medida é na entrada de dados: tens de tocar os caracteres significativos do html e transformá-los nos seus respectivos códigos html. Isso pode ser gravado num DB que entrará como texto. Na minha época de desenvolvimento, eu usava muito uma função para fazer essa transformação. Dê uma olhada nela para ver o que é e o que procurar na linguagem que você for usar: htmlspecialchars() — Converte caracteres especiais para a realidade HTML (https://www.php.net/manual/pt_BR/function.htmlspecialchars.php). Ao final das explicações, vale uma passada nas seções "Veja também" (link para a função htmlentities()) e "Notas de contribuições de usuários".
É claro que, para gravar isso de forma segura, melhor usar algum ORM e as tais prepared statements.
A segunda medida é nunca usar funções do tipo eval() em entradas do usuário. Elas têm como objetivo processar strings como códigos da linguagem. Eval() é do PHP. Pesquisar na sua linguagem.
Olhar a lista, pode te dar a ideia ou de paralização ou querer resolver tudo o que julgar necessário em tua aplicação. Isso pode ser contraprodecente no início. O recomendado é ser pragmático e aplicar as ações necessárias para esta atividade. As demais ações relacionadas a outros problemas, deixe para resolver quando chegar a vez deles... do contrário, demerará muito para sair do v0.
Espero que tenha entendido bem sua pergunta/necessidade e ter contribuído.