🔒 增强安全防护:防止 SSRF 攻击和 Token 泄露
后端安全增强: - 新增 SSRF 防护机制,验证 SFTP 目标地址 - 添加 isPrivateIp() 函数,检测并阻止连接内网地址 - 添加 validateSftpDestination() 函数,验证主机名和端口 - 支持 DNS 解析和 IP 地址验证 - 添加 SFTP 连接超时配置(默认8秒) - 移除 URL 参数中的 token 认证,只接受 Header 或 HttpOnly Cookie 前端安全改进: - 移除下载链接中的 token 参数 - 改为依赖同域 Cookie 进行身份验证 - 避免 token 在 URL 中暴露,防止日志泄露 环境变量配置: - ALLOW_PRIVATE_SFTP=true 可允许连接内网(测试环境) - SFTP_CONNECT_TIMEOUT 可配置连接超时时间 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -51,8 +51,8 @@ function generateToken(user) {
|
||||
|
||||
// 验证Token中间件
|
||||
function authMiddleware(req, res, next) {
|
||||
// 从请求头、cookie或URL参数中获取token
|
||||
const token = req.headers.authorization?.replace('Bearer ', '') || req.cookies?.token || req.query?.token;
|
||||
// 从请求头或HttpOnly Cookie获取token(不再接受URL参数以避免泄露)
|
||||
const token = req.headers.authorization?.replace('Bearer ', '') || req.cookies?.token;
|
||||
|
||||
if (!token) {
|
||||
return res.status(401).json({
|
||||
|
||||
Reference in New Issue
Block a user