Sì. È possibile inviare JavaScript e CSS tramite WebSockets (o AJAX). Inoltre, non dovresti avere bisogno di codificare in base64 il CSS e JavaScript come se fosse un'immagine fintantoché il server WebSocket è correttamente in grado di codificare in UTF-8 qualsiasi carattere Unicode speciale nel Javascript.
Una volta ricevuto il JavaScript o CSS tramite WebSocket, è possibile caricare utilizzando il seguente meccanismo (dove tipo è o 'script' o 'css'):
function dynamic_load(type, content) {
var elem = document.createElement(type);
elem.type = (type === 'script') ? 'text/javascript' : 'text/css';
elem.innerHTML = content;
document.getElementsByTagName("head")[0].appendChild(elem);
}
Tale meccanismo potrebbe avere problemi in IE 8 e precedenti, ma dal momento che si utilizzano WebSockets, sospetto che il tuo obiettivo sia un browser moderno. È possibile verificare che la funzione dynamic_load funziona da console JavaScript del browser:
dynamic_load('script', "alert('hello world');");
È possibile inviare qualsiasi cosa. Non c'è nulla che tu non possa inviare, nemmeno virus. – Pacerier