🔒 修复命令注入漏洞并增强HTTPS配置
**安全修复:** - 修复命令执行语法错误(wmic命令字符串拼接) - 添加驱动器字母验证防止命令注入(仅允许A-Z) - 修复命令执行参数构造错误 **功能增强:** - 新增ENFORCE_HTTPS环境变量(强制HTTPS访问) - 更新.env.example添加ENFORCE_HTTPS配置说明 - 更新install.sh支持自动配置ENFORCE_HTTPS - 更新脚本自动为现有.env补充ENFORCE_HTTPS配置 这些改进消除了命令注入风险并提供了更灵活的HTTPS策略控制。 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -3062,7 +3062,13 @@ app.get('/api/admin/storage-stats', authMiddleware, adminMiddleware, async (req,
|
||||
try {
|
||||
// 获取本地存储目录所在的驱动器号
|
||||
const driveLetter = localStorageDir.charAt(0);
|
||||
const { stdout: wmicOutput } = await execAsync(`wmic logicaldisk where "DeviceID='' + driveLetter + '':''" get Size,FreeSpace /value`, { encoding: 'utf8' });
|
||||
if (!/^[A-Za-z]$/.test(driveLetter)) {
|
||||
throw new Error('Invalid drive letter');
|
||||
}
|
||||
const { stdout: wmicOutput } = await execAsync(
|
||||
`wmic logicaldisk where "DeviceID='${driveLetter}:'" get Size,FreeSpace /value`,
|
||||
{ encoding: 'utf8' }
|
||||
);
|
||||
|
||||
const freeMatch = wmicOutput.match(/FreeSpace=(\d+)/);
|
||||
const sizeMatch = wmicOutput.match(/Size=(\d+)/);
|
||||
|
||||
Reference in New Issue
Block a user