How to hijack, proxy and smuggle sockets with Rack/Ruby
summary
Claim is that HTTP connections can carry arbitrary TCP protocols by taking over the socket via Rack hijack and tunneling VNC or SSH through an HTTP upgrade The implementation uses Ruby with Puma a C epoll based helper and a custom scheduling trick called bouncing select plus a small Go reverse binary and a browser plugin A working proof of concept demonstrates concurrent tunnels to VNC and SSH over HTTP and the demo runs end to end
AI-written summary · about
chapters (23)
- 0:00Intro
- 1:00Who am I
- 1:48Manage IQ
- 2:08Browser remote consoles
- 4:05How does it work
- 4:51Nonblocking IO
- 5:17ReadWrite IO
- 5:49Test buffers
- 6:22Dependencies
- 7:26Eventdriven solution
- 8:26Bounce select solution
- 9:06Alternative solutions
- 10:50C extension
- 11:15Bidirectional sockets
- 11:51Web servers
- 12:54RAC hijack
- 13:14Code snippet
- 14:07Upgrade to something else
- 14:33VNC
- 16:18Architecture
- 16:52Server
- 17:13Advantages Disadvantages
- 17:47Demo
related talks
37mRuby on Rack: The Magic Between Request and Response
36mThe Little Server That Could
35mThe little server that could
44mOutside the Web Box: Using Ruby for Other Protocols
30mThe Power of Middleware - Building Your Own Mini Web Framework on Rack
29mReal Time Rack
28mRack for web developers
36mStreaming over the web with modern Ruby
