mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-05-27 19:19:35 +08:00
fix(security): 节点文件浏览限制为非 viewer (#78)
GET /api/nodes/:id/fs/list 加 RequireNotViewer() 守卫,杜绝只读 viewer 枚举节点文件系统目录(信息泄露);与备份任务配置的权限级别对齐。
This commit is contained in:
@@ -292,7 +292,10 @@ func NewRouter(deps RouterDependencies) *gin.Engine {
|
||||
nodes.POST("", RequireRole("admin"), nodeHandler.Create)
|
||||
nodes.PUT("/:id", RequireRole("admin"), nodeHandler.Update)
|
||||
nodes.DELETE("/:id", RequireRole("admin"), nodeHandler.Delete)
|
||||
nodes.GET("/:id/fs/list", nodeHandler.ListDirectory)
|
||||
// 文件浏览会枚举节点文件系统目录(含 /etc、/root 等),属敏感读操作:
|
||||
// 限制为非 viewer(admin/operator),与"创建备份任务需选源路径"的权限对齐,
|
||||
// 避免只读 viewer 借此探查服务器目录结构。
|
||||
nodes.GET("/:id/fs/list", RequireNotViewer(), nodeHandler.ListDirectory)
|
||||
nodes.POST("/batch", RequireRole("admin"), nodeHandler.BatchCreate)
|
||||
nodes.POST("/:id/install-tokens", RequireRole("admin"), nodeHandler.CreateInstallToken)
|
||||
nodes.POST("/:id/rotate-token", RequireRole("admin"), nodeHandler.RotateToken)
|
||||
|
||||
Reference in New Issue
Block a user