Premisas:
Lenguaje(s) de programación: PHP, javascript, jquery, html
Bases de datos: SQL Server
Navegadores usados para testeos: Internet Explorer 10, Chrome (latest), Mozilla Firefox (Latest), Safari (latest)
Navegadores usados por los usuarios del sistema: mayoritariamente IE9 o superior pero hay de todo.
Mas que una pregunta este nuevo hilo va en relación a las buenas costumbres que tenéis a la hora de crear un formulario.
Este asunto surge a raíz de un test de penetración que ha hecho una compañía externa a nuestra web, en dicha web tenemos varios formularios e inputs y han detectado varios de ellos que admiten la inyección XSS con comandos como
<script>
alert('hello');
</script>
Me gustaría en esos campos realizar algún tipo de control pero sin que los valores lleguen a tocar el servidor ya que hay algunos comandos que de llegar al servidor se ejecutarían (supongo).
Es por esto que pregunto qué métodos utilizáis? Había pensado en HTML 5 y pattern pero ayer mi compañero se saltó con su navegador (Safari para Apple) el pattern type="email" de un input y metió es script a correr.
Cuales son buenas costumbres a la hora de construir un formulario y validar todos los campos para que no os inyecten ni XSS ni SQL-injection ni nada que os pueda suponer una brecha de seguridad?
SaludoS!!