马儿农场系统开发(1)—— 系统总体设计

项目开发计划

  • 想利用放假在家的时间,结合前面所学的网站开发,桌面应用开发及Windows黑客编程知识,从零做一款远控软件服务提供系统,主要目的是练练手,计划用时三天(如果不被其他事情打断的话),后续会放出开发进度

项目功能介绍

  • 牧马场1.0系统,为web用户提供远控软件定制和管理服务,用户注册账号登录后,可以按照自己需求定制远控软件,并在网站前端对部署的远控软件进行监管,提供远控软件功能定制、状态监控、消息收发、文件传送、远程命令执行等功能。

项目组织结构

  • horse-front: 牧马场系统前端
  • horse-back: 牧马场系统后端
  • horse-table: 牧马场系统数据表保存目录
  • horse-redis: 牧马场系统redis数据保存目录
  • horse-serv: 远控软件服务器端
  • horse-cli: 远控软件客户端
  • horse-demo: 系统开发阶段测试代码

项目技术选型

项目 技术
系统前端 Vue/Vue router/Vuex/ElementUI
系统后端 SprintBoot/SpringSecurity/MyBatis/JWT/
关系型数据库 MySql
缓存型数据库 Redis
消息队列 RabbitMQ
远控软件服务端 Qt
远控软件客户端 Win32 api
前端同后端的通信 Axios
后端同前端的通信 WebSocket
客户端补丁文件 Python脚本

项目设计思维导图

项目设计总体框图

项目特点

  • 用户无需在本地安装远控软件,无需使用vps跳板,即可做到本地远控不留痕迹
  • 用户只需要联网登录账号,即可使用服务器上的资源,将原本分散到各用户主机的服务端,收归到统一的服务器进行集中管理
  • 用户可以同时在多台目标机器上部署多个远控软件,可以在网页上对这些远控软件进行批量监控和管理

项目不足之处

  • 高并发方面:系统本身设计是可以应对高并发场景的,但受限于服务器实际可用资源(资金有限,所有项目都部署到同一台服务器上),目前只能做少量测试用...
    • 前端:通过nodeJs部署,未做反向代理和负载均衡,未做故障迁移
    • 后端:jar包部署到服务器,未做反向代理和负载均衡,未做故障迁移
    • 数据库:用redis来保存需要频繁访问的数据,一定程度减轻了mysql的访问压力,但未做数据库的集群化管理和故障迁移
    • 消息队列:所有用户使用同一虚拟主机,同一交换机,只通过路由key区分不同用户,未做集群管理和故障迁移
    • 远控软件服务端:持续运行在服务器上,使用子进程来建立远控连接,并且使用了qt的信号和槽机制来监控远控消息是否可读可写,保证连接的建立和消息收发都是非阻塞式的,能够应对高并发场景。但是在高并发环境下,只用单进程读取大量远控软件信息,并推送到前台界面,可能会较吃力。
  • 安全性方面:
    • 对用户数据进行了加密再保存到数据库中
    • 用户认证采用JWT认证
    • 未对远控软件的消息传输进行加密,存在安全风险
  • 实用性方面:
    • 当前未对远控软件做免杀,没法通过windows defender等杀软的检测,不能投入实际生产应用环境,当然,做这个系统的本身目的也只是为了练练手,做娱乐用
posted @ 2023-01-23 13:15  z5onk0  阅读(44)  评论(0)    收藏  举报