很早的时候在下用一种比较简陋的方式利用WebSocket实现了在线Selenium执行功能《一》、《二》。大概效果如下:
其实实现原理挺粗暴的,服务端开启一个WebSocket服务端,一直处于监听状态。浏览器利用js脚本发起连接,并将内容通过WebSocket发送给服务端。只要发送的格式符合服务端的定义,理论上讲,服务端会无条件执行任何请求。
虽然过去了这么久,但是一想到服务器上还运行这么危险的服务,我便久久无法入眠(其实并没有)。趁着这次国庆大假,在家又折腾了一下我的在线代码执行服务,最主要的目标就是让websocket能更安全的运行。
怎么才能更安全的运行呢?当然要利用小云上已运行的KeyCloak所提供的OAuth2认证啦。