¿La expresión regular [\ w /$!.*- construye la inyección de cargas útiles como:
"><script>alert(4)</script>
" onload="alert(4)"
...
¿La expresión regular [\ w /$!.*- construye la inyección de cargas útiles como:
"><script>alert(4)</script>
" onload="alert(4)"
...
No. Esto no detiene todas las inyecciones.
Mencionaste un ejemplo:
<script type='text/javascript' src='INJECTIONPOINT'>
La expresión regular que enumeró no es suficiente para detener XSS en ese caso; un atacante podría inyectar //www.evil.com/kablooey.js
, y listo. (Comentario: la URL //www.evil.com/kablooey.js
es tratada por los navegadores como equivalente a http://www.evil.com/kablooey.js
, si la página que contiene se sirvió a través de http.)
En general, recomiendo leer el OWASP recomendaciones sobre cómo prevenir XSS. Desinfecte sus entradas y utilice el escape dependiente del contexto de todas las salidas (por ejemplo, todos los valores insertados en HTML).
Lea otras preguntas en las etiquetas web-application web-browser xss javascript