La regex [\ w /$!.*-]+$ interrompe l'iniezione di payload come:
"><script>alert(4)</script>
" onload="alert(4)"
...
La regex [\ w /$!.*-]+$ interrompe l'iniezione di payload come:
"><script>alert(4)</script>
" onload="alert(4)"
...
No. Questo non si ferma a tutte le iniezioni.
Hai citato un esempio:
<script type='text/javascript' src='INJECTIONPOINT'>
L'espressione regolare che hai elencato non è sufficiente per fermare XSS in quel caso; un utente malintenzionato potrebbe iniettare //www.evil.com/kablooey.js
e il gioco è fatto. (Commento: l'URL //www.evil.com/kablooey.js
viene considerato dai browser equivalente a http://www.evil.com/kablooey.js
, se la pagina contenente è stata pubblicata su http.)
In generale, consiglio di leggere i consigli di OWASP su come prevenire XSS. Disinfetta gli input e usa l'escape dipendente dal contesto di tutti gli output (ad es. Tutti i valori inseriti in HTML).
Leggi altre domande sui tag javascript web-browser web-application xss