马儿农场系统开发(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 @   z5onk0  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示