fix: 修复多个安全缺陷和功能问题
- 移除加密相关代码(服务端和所有客户端) - 修复 JWT 验证未检查签名算法的问题 - 修复重置密码使用不安全随机数的问题 - 实现 Logout 服务端失效机制 - 修复历史版本对比 diff 颜色标记错误 - 修复占位符解析循环引用风险 - 添加用户禁用状态检查 - 更新 bug 清单文档
This commit is contained in:
@@ -6,7 +6,6 @@ import requests
|
||||
|
||||
from kenaito_conf.cache import Cache
|
||||
from kenaito_conf.config import Config
|
||||
from kenaito_conf.crypto import decrypt_config
|
||||
from kenaito_conf.listener import Listener
|
||||
|
||||
logger = logging.getLogger("kenaito_conf")
|
||||
@@ -18,8 +17,6 @@ class ConfigClient:
|
||||
self._cache = Cache(config.cache_dir)
|
||||
self._listener = Listener()
|
||||
self._configs: dict[str, str] = {}
|
||||
self._secret: str = ""
|
||||
self._global_secret: str = ""
|
||||
self._last_time: int = 0
|
||||
self._lock = threading.RLock()
|
||||
self._stop_event = threading.Event()
|
||||
@@ -75,14 +72,6 @@ class ConfigClient:
|
||||
if data.get("code", 0) != 0:
|
||||
raise RuntimeError(f"server error: {data.get('msg', 'unknown')}")
|
||||
|
||||
secret = data.get("kenaito.config.encrypt-secret")
|
||||
if secret:
|
||||
self._secret = secret
|
||||
|
||||
global_secret = data.get("kenaito.config.global-encrypt-secret")
|
||||
if global_secret:
|
||||
self._global_secret = global_secret
|
||||
|
||||
ts = data.get("latest.fetch.timestamp")
|
||||
if ts:
|
||||
self._last_time = int(ts)
|
||||
@@ -117,8 +106,7 @@ class ConfigClient:
|
||||
if changed_data:
|
||||
changed = {}
|
||||
for k, v in changed_data.items():
|
||||
decrypted = self._try_decrypt(v)
|
||||
changed[k] = decrypted
|
||||
changed[k] = v
|
||||
|
||||
with self._lock:
|
||||
self._configs.update(changed)
|
||||
@@ -133,13 +121,7 @@ class ConfigClient:
|
||||
continue
|
||||
if not isinstance(v, str):
|
||||
continue
|
||||
self._configs[k] = self._try_decrypt(v)
|
||||
|
||||
def _try_decrypt(self, value: str) -> str:
|
||||
decrypted = decrypt_config(self._secret, value)
|
||||
if decrypted == value and self._global_secret:
|
||||
decrypted = decrypt_config(self._global_secret, value)
|
||||
return decrypted
|
||||
self._configs[k] = v
|
||||
|
||||
def _sync_loop(self) -> None:
|
||||
while not self._stop_event.is_set():
|
||||
|
||||
Reference in New Issue
Block a user