【发布时间】:2017-05-02 20:59:30
【问题描述】:
通过 socket.io 发送大文件会导致服务器崩溃
server > RangeError: Array buffer allocation failed │
server > at Buffer.Uint8Array (native) │
server > at FastBuffer (buffer.js:12:5) │
server > at createUnsafeBuffer (buffer.js:39:12) │
server > at arrayBufferToBuffer (/home/htdocs/socket/server/ │
node_modules/engine.io-parser/lib/index.js:371:16) │
server > at Object.exports.decodePacket (/home/htdocs/socket │
/server/node_modules/engine.io-parser/lib/index.js:159:12) │
server > at WebSocket.Transport.onData (/home/htdocs/socket/ │
server/node_modules/engine.io/lib/transport.js:116:24) │
server > at WebSocket.onData (/home/htdocs/socket/server/nod │
e_modules/engine.io/lib/transports/websocket.js:79:30) │
server > at onServerMessage (/home/htdocs/socket/server/node │
_modules/uws/uws.js:18:15)
所以它是我的应用程序的“开放”漏洞,不可能在客户端按大小过滤文件,因为客户端是用 JavaScript 编写的,用户可以轻松修改它,是否有可能以某种方式禁用接受大请求 node.js /socket.io 端?
Nginx 用于负载均衡,所以也许可以配置 nginx 使大请求无效
【问题讨论】:
标签: node.js websocket socket.io