Compare commits
3 Commits
0061d837ec
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| d46d20f670 | |||
| e5e2bfd9db | |||
|
|
355c5940d4 |
@@ -4555,10 +4555,10 @@ app.get('/api/admin/settings', authMiddleware, adminMiddleware, (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// 更新系统设置
|
// 更新系统设置
|
||||||
|
// 注意:已移除 requirePasswordConfirmation 中间件,依赖管理员登录认证
|
||||||
app.post('/api/admin/settings',
|
app.post('/api/admin/settings',
|
||||||
authMiddleware,
|
authMiddleware,
|
||||||
adminMiddleware,
|
adminMiddleware,
|
||||||
requirePasswordConfirmation, // 安全修复:添加密码二次验证(系统设置影响全局)
|
|
||||||
(req, res) => {
|
(req, res) => {
|
||||||
try {
|
try {
|
||||||
const { max_upload_size, smtp, global_theme } = req.body;
|
const { max_upload_size, smtp, global_theme } = req.body;
|
||||||
|
|||||||
@@ -1887,11 +1887,12 @@
|
|||||||
仅 OSS 模式
|
仅 OSS 模式
|
||||||
</div>
|
</div>
|
||||||
<div style="color: var(--text-secondary); font-size: 13px; margin-top: 6px;">
|
<div style="color: var(--text-secondary); font-size: 13px; margin-top: 6px;">
|
||||||
{{ user?.oss_config_source !== 'none' ? '已配置云服务,可正常使用 OSS 存储。' : '还未配置 OSS,请先填写配置信息。' }}
|
{{ user?.oss_config_source !== 'none' ? '已配置系统级 OSS,可正常使用 OSS 存储。' : '还未配置 OSS,请先填写配置信息。' }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<button class="btn btn-primary" @click="openOssConfigModal()" style="border-radius: 10px;">
|
<!-- 仅在用户有个人OSS配置时显示修改按钮 -->
|
||||||
<i class="fas fa-tools"></i> 配置 / 修改 OSS
|
<button v-if="user?.has_oss_config" class="btn btn-primary" @click="openOssConfigModal()" style="border-radius: 10px;">
|
||||||
|
<i class="fas fa-tools"></i> 修改个人 OSS 配置
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
30
install.sh
30
install.sh
@@ -2114,6 +2114,9 @@ create_env_file() {
|
|||||||
# 生成随机Session密钥
|
# 生成随机Session密钥
|
||||||
SESSION_SECRET=$(openssl rand -hex 32)
|
SESSION_SECRET=$(openssl rand -hex 32)
|
||||||
|
|
||||||
|
# 生成随机加密密钥(用于加密OSS等敏感信息)
|
||||||
|
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||||
|
|
||||||
# ========== CORS 安全配置自动生成 ==========
|
# ========== CORS 安全配置自动生成 ==========
|
||||||
# 根据部署模式自动配置 ALLOWED_ORIGINS 和 COOKIE_SECURE
|
# 根据部署模式自动配置 ALLOWED_ORIGINS 和 COOKIE_SECURE
|
||||||
|
|
||||||
@@ -2162,6 +2165,10 @@ JWT_SECRET=${JWT_SECRET}
|
|||||||
# Session密钥(用于会话管理)
|
# Session密钥(用于会话管理)
|
||||||
SESSION_SECRET=${SESSION_SECRET}
|
SESSION_SECRET=${SESSION_SECRET}
|
||||||
|
|
||||||
|
# 加密密钥(用于加密OSS Access Key Secret等敏感信息)
|
||||||
|
# 重要:此密钥必须配置,否则服务无法启动
|
||||||
|
ENCRYPTION_KEY=${ENCRYPTION_KEY}
|
||||||
|
|
||||||
# 数据库路径
|
# 数据库路径
|
||||||
DATABASE_PATH=./data/database.db
|
DATABASE_PATH=./data/database.db
|
||||||
|
|
||||||
@@ -2199,6 +2206,10 @@ TRUST_PROXY=1
|
|||||||
# 公开端口(nginx监听的端口,用于生成分享链接)
|
# 公开端口(nginx监听的端口,用于生成分享链接)
|
||||||
# 如果使用标准端口(80/443)或未配置,分享链接将不包含端口号
|
# 如果使用标准端口(80/443)或未配置,分享链接将不包含端口号
|
||||||
PUBLIC_PORT=${HTTP_PORT}
|
PUBLIC_PORT=${HTTP_PORT}
|
||||||
|
|
||||||
|
# CSRF 保护(生产环境强烈建议开启)
|
||||||
|
# 使用 Double Submit Cookie 模式防止跨站请求伪造攻击
|
||||||
|
ENABLE_CSRF=true
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
print_success "配置文件创建完成"
|
print_success "配置文件创建完成"
|
||||||
@@ -3728,6 +3739,25 @@ update_patch_env() {
|
|||||||
else
|
else
|
||||||
print_info ".env 已包含 SESSION_SECRET,保持不变"
|
print_info ".env 已包含 SESSION_SECRET,保持不变"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# 检查 ENCRYPTION_KEY(加密密钥,用于加密OSS等敏感信息,必需)
|
||||||
|
if ! grep -q "^ENCRYPTION_KEY=" "${PROJECT_DIR}/backend/.env"; then
|
||||||
|
# 自动生成随机加密密钥
|
||||||
|
NEW_ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||||
|
echo "ENCRYPTION_KEY=${NEW_ENCRYPTION_KEY}" >> "${PROJECT_DIR}/backend/.env"
|
||||||
|
print_warning "已为现有 .env 补充 ENCRYPTION_KEY(已自动生成安全密钥)"
|
||||||
|
print_info "此密钥用于加密 OSS Access Key Secret 等敏感信息"
|
||||||
|
else
|
||||||
|
print_info ".env 已包含 ENCRYPTION_KEY,保持不变"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 检查 ENABLE_CSRF(CSRF 保护,生产环境强烈建议开启)
|
||||||
|
if ! grep -q "^ENABLE_CSRF=" "${PROJECT_DIR}/backend/.env"; then
|
||||||
|
echo "ENABLE_CSRF=true" >> "${PROJECT_DIR}/backend/.env"
|
||||||
|
print_warning "已为现有 .env 补充 ENABLE_CSRF=true(CSRF保护已启用)"
|
||||||
|
else
|
||||||
|
print_info ".env 已包含 ENABLE_CSRF,保持不变"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
print_warning "未找到 ${PROJECT_DIR}/backend/.env,请手动确认配置"
|
print_warning "未找到 ${PROJECT_DIR}/backend/.env,请手动确认配置"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user