TLS 가 앞단에서 종단되고 앱에는 HTTP 로 전달되는 구성에서 X-Forwarded-* 가 전부 무시되어 화면 백지·IP 왜곡·webhook 403 이 함께 발생했다. 코어에 신뢰 프록시 설정 지점이 아예 없던 것이 원인이다. - config/trustedproxy.php 로 내장 TrustProxies 미들웨어에 값을 공급한다. bootstrap/app.php 는 건드리지 않는다 — withMiddleware 클로저는 .env 로드 전에 평가되어 env 가 항상 null 이 되는 조용한 no-op 이다. - 판정은 App\Support\TrustedProxyDiagnostic 단일 SSoT 에서 계산하고 대시보드 알림·환경설정 고급 탭·설치 마법사·trusted-proxy:status 네 면이 소비한다. 판정식은 "HTTPS 인식 실패" 가 아니라 "X-Forwarded-* 수신 중 AND 신뢰 프록시 미설정" 이다 — HTTP 전용 사이트가 프록시 뒤에 있으면 화면은 정상인 채로 나머지만 조용히 어긋나기 때문이다. - 값 편집 UI 와 쓰기 엔드포인트는 두지 않는다(잠금 역설 + XFF 위조 경로). - 혼합 콘텐츠 차단을 부트스트랩 폴백의 별도 사유로 가른다. 새로고침으로 낫지 않으므로 버튼을 렌더하지 않고, 원인·조치는 콘솔로 운영자에게 보낸다. - 대시보드 알림을 심각도로 배치한다 — warning 은 상단 배너, 그 외는 하단 카드. 같은 알림이 두 곳에 뜨지 않으며, 여러 건은 간격을 두고 쌓인다. 공개 이슈: (@lyg-kaban 제보)
34 lines
1.7 KiB
PHP
34 lines
1.7 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Trusted Proxies
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| 리버스 프록시(AWS ALB, CloudFront, Cloudflare, nginx/Apache, ngrok) 뒤에서
|
|
| 구동될 때 신뢰할 프록시를 지정한다. Laravel 내장 TrustProxies 미들웨어가
|
|
| 요청 시점에 이 값을 폴백으로 읽어 X-Forwarded-* 헤더 신뢰 여부를 결정한다
|
|
| (Illuminate\Http\Middleware\TrustProxies::setTrustedProxyIpAddresses()).
|
|
|
|
|
| null (미설정) : 아무 프록시도 신뢰하지 않음 — 기본값, 기존 설치처 동작 불변
|
|
| '*' : 직전 호출 IP(REMOTE_ADDR)만 신뢰 — 동일 호스트 프록시·ALB
|
|
| '**' : 내장 미들웨어에서는 '*' 과 동일하게 동작한다(호환 표기)
|
|
| 'IP,IP/CIDR' : 콤마 구분 목록만 신뢰
|
|
|
|
|
| 프록시가 여러 단인 구성(CloudFront → ALB 등)에서는 '*' 도 '**' 도 부족하다.
|
|
| 둘 다 직전 호출 IP 하나만 신뢰하므로 X-Forwarded-For 체인의 마지막 프록시가
|
|
| 방문자로 기록된다. 그 구성에서는 체인의 모든 프록시 IP·CIDR 를 나열해야
|
|
| 최초 클라이언트 IP 가 해석된다 (실측 확인: docs/backend/reverse-proxy.md).
|
|
|
|
|
| '*' 은 앱이 프록시를 거치지 않고는 도달 불가한 구성에서만 안전하다.
|
|
| 앱이 직접 노출된 상태에서 사용하면 방문자가 X-Forwarded-For 를 위조해
|
|
| 기록 IP 와 IP 기반 제한을 조작할 수 있다. 상세: docs/backend/reverse-proxy.md
|
|
|
|
|
*/
|
|
|
|
'proxies' => env('TRUSTED_PROXIES'),
|
|
|
|
];
|