Como prevenir un SSTI a nivel de código:
La siguiente imagen muestra la vulnerabilidad a Server Side Template Injection través de Burp Suite, como podemos ver la típica cadena {{7*7}} se convierte en 49 en la salida:
El código programado en python para esta prueba es el siguiente:
Python
Para sanitizar el código podemos emplear la función re.sub:
Python
Para ello eliminaremos los carácteres [] y {} de la entrada del usuario:
Python
Una forma más segura puede ser eliminar cualquier símbolo y permitir solo la entrada de caracteres alfanuméricos de la siguiente forma:
Python
Finalmente, el código sanitizado es el siguiente:
Python
Si probamos de nuevo, la vulnerabilidad no se acontece: