refactor: 보안 취약점 제거 + 데드코드 정리 + 프론트엔드 중복 통합

- 인증 없는 임시 엔드포인트 삭제 (index.js, healthRoutes.js, publicPaths)
- skipAuth 우회 라우트 삭제 (workAnalysis.js)
- 하드코딩 유저 백도어 삭제 (routes/auth.js)
- 안전체크 CRUD에 admin 권한 추가 (tbmRoutes.js)
- deprecated shim 3개 삭제 + 8개 소비 파일 import 정리 (auth.js 직접 참조)
- 미사용 pageAccessController, db.js, common/security.js 삭제
- escapeHtml() 5곳 로컬 중복 제거 → api-base.js 전역 사용
- userPageAccess_v2_v2 캐시 키 버그 수정 (app-init.js)
- system3 .bak 파일 삭제, PROGRESS.md 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-25 08:19:01 +09:00
parent 7637be33f3
commit 93edf9529a
28 changed files with 136 additions and 2192 deletions

View File

@@ -1,9 +0,0 @@
// utils/access.js
exports.requireAccess = (...allowed) => {
return (req, res, next) => {
if (!req.user || !allowed.includes(req.user.access_level)) {
return res.status(403).json({ error: '접근 권한이 없습니다' });
}
next();
};
};

View File

@@ -1,29 +0,0 @@
/**
* @deprecated 이 파일은 하위 호환성을 위해 유지됩니다.
* 새로운 코드에서는 '../middlewares/auth'의 requireMinLevel을 사용하세요.
*
* @example
* // 이전 방식 (deprecated)
* const { requireAccess, ACCESS_LEVELS } = require('../middlewares/accessMiddleware');
* router.get('/admin', requireAccess('admin'), handler);
*
* // 새로운 방식 (권장)
* const { requireMinLevel, ACCESS_LEVELS } = require('../middlewares/auth');
* router.get('/admin', requireAuth, requireMinLevel('admin'), handler);
*/
const { requireMinLevel, ACCESS_LEVELS } = require('./auth');
/**
* @deprecated requireMinLevel을 사용하세요
*/
const requireAccess = (requiredLevel) => {
return requireMinLevel(requiredLevel);
};
module.exports = {
requireAccess,
ACCESS_LEVELS,
// 새로운 API
requireMinLevel
};

View File

@@ -1,36 +0,0 @@
/**
* @deprecated 이 파일은 하위 호환성을 위해 유지됩니다.
* 새로운 코드에서는 './auth'를 직접 import하세요.
*
* @example
* // 이전 방식 (deprecated)
* const { verifyToken, requireAdmin } = require('../middlewares/authMiddleware');
*
* // 새로운 방식 (권장)
* const { requireAuth, requireRole } = require('../middlewares/auth');
*/
const {
requireAuth,
requireRole,
requireMinLevel,
requireOwnerOrAdmin,
verifyToken,
requireAdmin,
requireSystem,
ACCESS_LEVELS
} = require('./auth');
module.exports = {
// 레거시 별칭 (하위 호환성)
verifyToken,
requireAdmin,
requireSystem,
// 새로운 API (권장)
requireAuth,
requireRole,
requireMinLevel,
requireOwnerOrAdmin,
ACCESS_LEVELS
};