2026-01-23 11:28:40 +08:00
|
|
|
|
你现在要防的是“别人拿到设备/拿到代码包后,能伪造请求、刷接口、下发恶意 OTA、甚至劫持通信”。单靠隐藏 Python 源码只能提高门槛,真正的安全要靠协议和密钥设计。结合你仓库里实际内容,建议你重点隐藏/整改这些点(按风险排序)。
|
2026-04-23 17:53:21 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-01-23 11:28:40 +08:00
|
|
|
|
1.4 OTA 下发“url”如果缺少强校验,就是远程代码执行入口
|
|
|
|
|
|
你 OTA 逻辑里从服务器指令拿到 url 就去下载并替换文件/重启(这是正常 OTA),但安全性取决于:
|
|
|
|
|
|
是否只允许白名单域名/路径
|
|
|
|
|
|
是否强制 https 并校验服务器证书
|
|
|
|
|
|
是否对 OTA 包做签名校验(最关键)
|
|
|
|
|
|
你这里能看到固定域名 static.shelingxingqiu.com 的特殊处理(ota_manager.py 里还在纠结 http/https),这块一定要“服务端签名 + 设备端验签”,否则隐藏源码也没用。
|
|
|
|
|
|
|
|
|
|
|
|
2. 建议隐藏(中风险,但很容易被人利用)
|
|
|
|
|
|
2.1 所有服务器地址/端口/API 路径(可被用于扫描、压测、撞库、协议逆向)
|
|
|
|
|
|
这些在 config.py 是明文:
|
|
|
|
|
|
SERVER_IP = "stcp.shelingxingqiu.com"SERVER_PORT = 50005HTTP_URL = "http://ws.shelingxingqiu.com"HTTP_API_PATH = "/home/shoot/device_fire/arrow/fire"
|
|
|
|
|
|
注意:即使你把它们藏进 .so,攻击者仍可能通过抓包/观察 DNS/SNI/流量拿到域名或 IP,所以“隐藏”只能降低静态分析风险,不能替代鉴权/签名。
|
2026-04-20 19:03:20 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-01-23 11:28:40 +08:00
|
|
|
|
|
|
|
|
|
|
3. 最有效的“防黑”措施(比隐藏更关键)
|
2026-04-23 17:53:21 +08:00
|
|
|
|
|
2026-01-23 11:28:40 +08:00
|
|
|
|
所有上报/控制命令加签名 + nonce/timestamp + 服务端防重放(别人抓到一次包也不能复用)
|
|
|
|
|
|
OTA 包必须做签名校验(设备端内置公钥,下载后验签通过才应用)
|
2026-04-20 19:03:20 +08:00
|
|
|
|
|
|
|
|
|
|
如果你告诉我:你们服务端目前能不能改协议(例如新增签名字段、下发 challenge、做 OTA 签名),我可以按“最小改动但提升最大安全”的顺序,帮你规划一套从现状平滑升级的方案。
|
|
|
|
|
|
|