Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- cors
- 트러블슈팅
- curl
- 고도몰
- 언어도단
- 루멘
- 구즐
- Synology
- 웹서버구축
- nginx
- .env
- 코드이그나이터
- Post
- git
- Laravel
- jwt
- access-token
- window.open()
- WSL
- csrf-token
- guzzle
- gitignore
- 고도몰튜닝
- revert
- 환경변수숨김
- 라라벨
- pyinstaller
- 맛집리스트
- codeigniter
- 디버그페이지
Archives
- Today
- Total
Six_Cool's 작업창고
라라벨 APP_DEBUG=true 시, 노출되는 환경 변수 숨김 처리 본문
라라벨 버전 : 5.6
라라벨 환경설정(.env)에서 'APP_DEBUG=true' 로 되어있을 때 에러가 발생하면
아래 이미지 처럼 디버그페이지에 환경설정 정보가 모두 노출된다.
이런 취약점을 이용해서 메일발송용 패스워드를 탈취해 불법메일을 대량 발송하는 해킹프로그램도 존재한다.
환경설정에서 디버그모드를 'false'로 처리해두면 상관이 없지만,
개발하다보면 디버그모드를 켜놓고 그대로 두거나 까먹는 경우도 있으니
아예 디버그페이지에 중요 정보는 가릴 수 있는 방법은 없는지 찾다가 간단한 방법을 찾았다.
위 디버그페이지를 보면 몇몇 정보는 "******************" 이런식으로 숨김처리되어있다.
방법은 간단.
/config/app.php 리턴 배열 안에
'debug_blacklist'라는 배열을 만들어 추가해 주면 된다.
<?php
return [
// 상단 기존 코드 생략
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_USERNAME',
'MAIL_PASSWORD',
'KAKAO_KEY',
'KAKAO_SECRET',
'NAVER_KEY',
'NAVER_SECRET',
'FACEBOOK_KEY',
'FACEBOOK_SECRET',
],
'_SERVER' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_USERNAME',
'MAIL_PASSWORD',
'KAKAO_KEY',
'KAKAO_SECRET',
'NAVER_KEY',
'NAVER_SECRET',
'FACEBOOK_KEY',
'FACEBOOK_SECRET',
],
'_POST' => [
'password',
],
],
];
위와 같이 .env 파일 내용 중 숨기기 원하는 항목을 블랙리스트에 추가해주면 된다.
환경변수와 서버요청데이터 두군데 모두 숨김처리 해야하므로 '_ENV', '_SERVER' 두군데 모두 동일하게 처리한다.
'_POST'는 post request 로 'password' 가 전달된 경우 숨김 처리되도록 한 것.
'프로그래밍 > PHP' 카테고리의 다른 글
[라라벨] 로그 파일 설정 (0) | 2021.11.10 |
---|---|
라라벨용 로컬 서버 세팅 참고 링크 (0) | 2021.08.12 |
PHP 컨트롤러에서 redirect 하면서 post 데이터 전달 방법 (0) | 2021.08.11 |
PHP MVC 패턴에 관한 기본내용 (펌) (0) | 2021.08.09 |
PHP redirect with Post datas (0) | 2021.08.05 |
Comments