feat(core): DB 최고권한 계정 차단 + OPcache 상태 안내
설치 단계와 코어 부팅의 정책이 엇갈려 있었다. 인스톨러는 root 를 자유롭게 허용하면서, 설치 후 부팅은 같은 값을 보고 확장 로딩 전체를 조용히 스킵했다. 설치는 성공하지만 이후 깨진 화면만 뜨고 원인은 로그 한 줄에만 남았다. 판정을 프레임워크 의존성 0 인 공용 SSoT 로 모아 인스톨러와 코어가 같은 답을 내게 하고, 설치 단계에서 서버 2경로로 차단하며, 설치 후 변경은 전용 에러 페이지로 드러낸다. 가드를 boot 가 아닌 미들웨어에 두어 artisan 이 죽지 않게 해 복구 수단을 남겼다. admin 은 일반 권한 운영 계정 오차단을 막기 위해 차단 목록에서 제외했다. OPcache 는 상태 조회 경로 자체가 없어 성능 저하를 인지할 방법이 없었다. 설치 단계 경고(비차단)와 관리자 정보 탭 표시를 같은 판정 SSoT 로 추가했다. 확장 로드 여부만으로는 부족해 opcache.enable 지시자까지 확인하며, ini_get 이 차단된 환경은 "확인 불가"로 폴백해 경고도 차단도 하지 않는다.
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Database Account Configuration Error',
|
||||
'message' => 'The site cannot be displayed because of a problem with the database account configuration.',
|
||||
'description' => 'While this problem persists, modules, plugins and templates are not loaded. Please correct the configuration using the guidance below.',
|
||||
'blocked_reason' => 'Database superuser accounts such as root cannot be used, for security reasons. If such an account is compromised, the entire database is at risk.',
|
||||
'empty_reason' => 'The database username is empty. The configuration may be missing or corrupted.',
|
||||
'recovery_guide' => 'Change DB_WRITE_USERNAME in the .env file to a database account dedicated to this site, then run: php artisan config:clear',
|
||||
];
|
||||
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'title' => '데이터베이스 계정 설정 오류',
|
||||
'message' => '데이터베이스 계정 설정에 문제가 있어 사이트를 표시할 수 없습니다.',
|
||||
'description' => '이 상태에서는 모듈·플러그인·템플릿이 로딩되지 않습니다. 아래 안내에 따라 설정을 수정해 주세요.',
|
||||
'blocked_reason' => 'root 같은 데이터베이스 최고 권한 계정은 보안상 사용할 수 없습니다. 해당 계정이 유출되면 데이터베이스 전체가 위험해집니다.',
|
||||
'empty_reason' => '데이터베이스 사용자명이 비어 있습니다. 설정이 누락되었거나 손상되었을 수 있습니다.',
|
||||
'recovery_guide' => '.env 파일의 DB_WRITE_USERNAME 값을 이 사이트 전용 데이터베이스 계정으로 변경한 뒤, php artisan config:clear 명령을 실행해 주세요.',
|
||||
];
|
||||
Reference in New Issue
Block a user