Sto usando il modulo ws
e vorrei limitare la quantità di dati inviati dal client tramite websocket a 1Mb. Ciò impedirà a un utente malintenzionato di inviare enormi quantità di dati (in termini di GB) che causano l'esaurimento della memoria del server, il che causerebbe errori di tipo Denial of Service per ogni utente normale.
Per esempio, ad esempio Express consente di specificare la dimensione massima di un corpo della richiesta posta in questo modo:
come limitare la quantità di dati inviati dal client tramite websocket?
bodyParser.json({limit:'1Mb'})
Come faccio qualcosa di simile con il modulo ws
?
Ho provato
var ws = require('ws').Server
var wsserver = new ws({port:8080, limit:'1Mb'})
Ma questo, naturalmente, non funziona.
Desidero interrompere la trasmissione dei dati (dopo che 1Mb è stato superato) e la connessione web socket da chiudere. Come lo posso fare?
Ci deve essere un modo per limitare i frame di dati provenienti dal client ...
indovina nessuno lo sa ancora ... https://github.com/websockets/ws/issues/513 ... https://github.com/websockets/ws/issues?utf8=%E2%9C% 93 & q = limite – rafaelcastrocouto
Quale libreria 'ws' stai usando? Se non c'è una risposta nella documentazione per la libreria webSocket che stai usando, allora una risposta può essere determinata solo studiando il codice per la libreria per vedere se ha qualche tipo di capacità limite o capire dove il codice potrebbe essere cambiato aggiungere un tale limite. Sembra una cosa ragionevole da volere. – jfriend00
@ jfriend00 https://www.npmjs.com/package/ws eccolo qui. Apparentemente nella documentazione non vi è alcuna proprietà dell'argomento dell'opzione che lo farebbe. Forse c'è un metodo dell'istanza wsServer che può impostare il limite. Controllerò. –