良いか悪いかで言ったら、明らかに良くないんだろうけど、できてしまうんですねこれ。
よくない.js
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.innerHTML = "for(var i=0; i< 10; i++){console.log(i);}";
document.querySelector( 'body' ).appendChild(script);
セキュリティは詳しくないからよく知らないんだけど、WebSocketとか使ってるアプリでエスケープが甘いと悪いことされそうな予感。
追記
CSPを使うと、ちゃんとブロックされるようです。 @mpyw さんに教えていただきました。ありがとうございます。詳しくはコメント欄をご覧ください
ただし、CSPはインラインスクリプトや外部スクリプトの読み込みを禁止しますので、システムの実装に大きな制約がかかることになります。使う際はご留意ください
参考記事: 弊社のホームページにContent Security Policy(CSP)を導入しました