Chillax in dev

[PHP] defined('BASEPATH') OR exit('NO direct script access allowed'); 본문

PHP

[PHP] defined('BASEPATH') OR exit('NO direct script access allowed');

Seong Story 2024. 6. 11. 16:50
728x90

defined('BASEPATH') OR exit('NO direct script access allowed');

PHP 코드이그아니터 프레임워크에서 흔히 상단에 확인할 수 있는 이 코드를 살펴봅니다. 

 

이 코드는 CodeIgniter 프레임워크에서 흔히 사용되는 보안 수단입니다.

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

 

파일이 직접 접근되는 것을 방지하고, 오직 CodeIgniter 애플리케이션을 통해서만 접근할 수 있도록 합니다.

 

이 문구가 파일 상단에 위치해 있으면, CodeIgniter의 핵심 파일 중 하나에서 로드된 경우에만 파일이 실행됩니다. 그렇지 않으면 "No direct script access allowed" 메시지를 출력하고 스크립트 실행을 중단합니다.

 

1. defined('BASEPATH')

  • BASEPATH는 CodeIgniter의 기본 경로를 정의하는 상수이다. 상수는 CodeIgniter의 기본 파일들이 로드될 때 정의됩니다.
  • defined('BASEPATH')는 BASEPATH 상수가 정의되어 있는지 확인합니다.

2. OR exit('No direct script access allowed')

  • 만약 BASEPATH 상수가 정의되지 않은 경우, 즉 이 파일이 직접 접근되었을 경우 스크립트 실행을 중단시킵니다.
  • exit('No direct script access allowed');는 메시지를 출력하고, 스크립트 실행을 중단합니다.

왜 사용할까?

 

보안적인 이유입니다.

 

이는 사용자가 웹 브라우저를 통해 직접 모델 또는 컨트롤러 파일에 접근하려고 시도할 경우, 이 코드는 그 접근을 차단합니다. 이는 직접 파일 접근으로 인해 발생할 수 있는 잠재적인 보안 취약점을 방지합니다.

 

언제 사용할까?

 

이 코드는 CodeIgniter의 모든 컨트롤러, 모델, 뷰 파일의 맨 위에 위치하여 파일이 올바른 방식으로 로드되었는지 확인합니다.

728x90
LIST
Comments