생활 가이드
PHP 서버 보안 설정 php.ini 세션 로그인 점검
PHP 서버 보안은 php.ini에서 expose_php와 display_errors를 끄고, log_errors를 켜며, allow_url_include를 끄고, 세션 쿠키에 HttpOnly·Secure·SameSite를 설정하는 것부터 시작합니다. OWASP PHP 설정 치트시트와 PHP 매뉴얼의 권장값을 기준으로 정리했습니다.
이 글은 php.ini 핵심 설정, 세션·로그인 보안, 위험 함수 제한, 파일 권한을 다룹니다. Apache·Nginx 보안 헤더 설정은 서버 문서를 참고하세요.
아래 버튼에서 필요한 다음 단계를 확인하세요.
👉 PHP 홈페이지 바로가기👉 PHP 보안 취약점 점검 방법과 도구 체크리스트👉 PHP SQL 인젝션 XSS 파일 업로드 보안 방어법1. 오류와 정보 노출을 막습니다
OWASP 설정 치트시트는 운영 서버에서 expose_php=Off, error_reporting=E_ALL, display_errors=Off, display_startup_errors=Off, log_errors=On으로 두고 로그를 자주 확인하라고 안내합니다.
expose_php는 HTTP 헤더에 PHP 버전(X-Powered-By)을 노출하는 설정이라 끄는 것이 좋습니다. 오류 메시지를 화면에 보이면 경로와 코드 정보가 공격자에게 노출됩니다.
| 설정 | 운영 서버 권장값(OWASP) |
|---|---|
| expose_php | Off |
| display_errors | Off |
| log_errors | On |
| error_reporting | E_ALL |
2. 원격 파일 포함과 업로드를 제한합니다
allow_url_include와 allow_url_fopen을 끄면 로컬 파일 포함(LFI) 취약점이 원격 파일 포함(RFI)으로 쉽게 번지는 것을 막을 수 있다고 OWASP가 설명합니다. 업로드가 필요 없는 사이트는 file_uploads를 끄세요.
open_basedir로 PHP가 접근할 수 있는 폴더 범위를 제한할 수 있습니다. 업로드를 쓴다면 upload_max_filesize와 max_file_uploads도 필요한 만큼만 허용하세요.
- allow_url_include = Off
- allow_url_fopen = Off(필요 없을 때)
- file_uploads = Off(업로드 미사용 시)
- open_basedir로 접근 폴더 제한
3. 위험 함수는 쓰지 않는 것만 막습니다
disable_functions는 쉼표로 구분한 함수 목록을 막는 설정이고, PHP 8.0부터는 막힌 함수의 정의 자체가 사라집니다. OWASP는 system, exec, shell_exec, passthru, popen, proc_open 같은 위험한 함수 중 쓰지 않는 것을 모두 막으라고 안내합니다.
OWASP 예시 목록에는 move_uploaded_file, mkdir, chmod, rename처럼 정상 기능에 필요한 함수도 들어 있어 그대로 적용하면 업로드나 파일 처리가 멈출 수 있습니다. 반드시 내 사이트가 쓰는 함수를 확인한 뒤 막으세요.
| 구분 | 함수 예(OWASP) | 주의 |
|---|---|---|
| 명령 실행 | system, exec, shell_exec, passthru, popen, proc_open | 쓰지 않으면 차단 |
| 정보 노출 | phpinfo, show_source, highlight_file | 운영 서버에서 차단 검토 |
| 파일 처리 | move_uploaded_file, mkdir, chmod, rename | 정상 기능에 필요할 수 있음 |
4. 세션과 로그인 보안을 설정합니다
PHP 매뉴얼은 보안 세션을 위해 session.use_strict_mode를 켜라고 안내합니다. 기본값은 꺼져 있고, 켜면 세션 모듈이 만들지 않은 세션 ID를 받아들이지 않습니다.
쿠키 설정으로는 session.cookie_httponly(자바스크립트 접근 차단), session.cookie_secure(HTTPS에서만 전송), session.cookie_samesite(Lax 또는 Strict)를 권장합니다. HTTPS 전용 사이트라면 HSTS도 검토하라고 안내합니다. 로그인 성공 뒤 세션 ID를 새로 발급하면 세션 고정 공격을 막는 데 도움이 됩니다.
- session.use_strict_mode = On
- session.cookie_httponly = On
- session.cookie_secure = On(HTTPS 전용)
- session.cookie_samesite = Lax 또는 Strict
5. 파일 권한과 웹 접근을 정리합니다
업로드 폴더에서 PHP 파일이 실행되지 않게 하고, 설정 파일과 백업 파일은 웹에서 내려받을 수 없는 곳에 두세요. 쓰기 권한은 필요한 폴더에만 줍니다.
워드프레스 보안 강화 가이드는 디렉터리 755, 파일 644 권한을 권장합니다. 설정을 바꾼 뒤에는 사이트가 정상 동작하는지 확인하고, 오류 로그를 정기적으로 점검하세요.
실행 체크리스트
표시한 항목은 이 브라우저에만 저장되며 어디에도 전송하지 않습니다.
이 환경에서는 저장할 수 없어 이번 화면에서만 표시됩니다.
확인한 공식 자료
작성·점검일 2026-10-22. PHP·워드프레스·OWASP·KISA 공식 문서를 바탕으로 정리한 편집 가이드입니다. 보안 설정은 서버 환경에 따라 정상 기능을 막을 수 있으니 운영 서버에 적용하기 전에 테스트 환경에서 확인하세요.