현재 위치: > 최신 기사 목록> Highlower_File 파일 경로 확인으로 기능을 사용하는 가장 좋은 방법

Highlower_File 파일 경로 확인으로 기능을 사용하는 가장 좋은 방법

gitbox 2025-06-03

PHP 개발 중에 Highlower_File 함수는 매우 편리한 도구입니다. 지정된 PHP 파일을 하이라이트 형식으로 출력하여 개발자가 코드 구조 및 구문을 빠르게 볼 수 있도록합니다. 그러나 Highlower_File을 사용하여 파일 내용을 직접 표시 할 때 파일 경로의 보안 확인이 제대로 수행되지 않으면 경로 트래버스 공격 또는 민감한 파일 내용을 노출시키는 것과 같은 보안 위험이 발생할 수 있습니다.

이 기사는 실제 코드 예제를 결합하여 Highlower_File 기능을 안전하고 효율적으로 사용하여 PHP 파일의 하이라이트를 보장하는 방법을 소개합니다.


1. Highlower_File 함수 소개

Highter_File은 지정된 PHP 파일을 읽고 구문 강조 표시로 HTML 형식으로 출력하는 내장 PHP 기능입니다. 통화 형식은 다음과 같습니다.

 highlight_file('파일 경로');

예:

 highlight_file('example.php');

이 기능은 기본적으로 강조 표시된 코드를 직접 출력합니다. 문자열 형태로 강조 표시된 코드를 가져 오려면 두 번째 매개 변수를 true 할 수 있습니다.


2. 기존 보안 위험

사용자가 입력 한 경로가 Highlight_File 로 직접 전달되면 사용자 입력과 같은 경로 트래버스 공격을 쉽게 유발할 수 있습니다.

 ../../../../etc/passwd

또는 서버의 민감한 파일에 액세스하여 보지 말아야 할 데이터 누출 위험이 발생합니다. 따라서 Highlod_File을 호출하기 전에 파일 경로를 엄격하게 필터링하고 확인해야합니다.


3. 모범 사례 : 경로 점검과 함께 Highlight_File 사용

아래는 파일 경로에서 엄격한 검사를 통해 Highlod_File을 안전하게 호출하는 방법을 보여주는 샘플 코드입니다.

 <?php
// 표시 될 수있는 파일 디렉토리의 루트 경로 정의
define('BASE_DIR', __DIR__ . '/php_files/');

// 사용자가 요청한 파일 이름을 가져옵니다
$file = $_GET['file'] ?? '';

// 기본 안전 검사,빈 파일 이름을 피하거나 불법 문자를 포함하지 마십시오
if (empty($file) || preg_match('/[^a-zA-Z0-9_\-\.]/', $file)) {
    die('잘못된 파일 이름');
}

// 스 플라이 싱 파일의 절대 경로
$filePath = realpath(BASE_DIR . $file);

// 경로가 허용 된 디렉토리에 있는지 여부를 추가로 확인하십시오.,경로가 횡단되는 것을 방지하십시오
if ($filePath === false || strpos($filePath, realpath(BASE_DIR)) !== 0) {
    die('非法파일 경로');
}

// 파일이 존재하고 일반 파일인지 확인
if (!is_file($filePath)) {
    die('파일이 존재하지 않습니다');
}

// 부르다highlight_file출력 하이라이트 코드
highlight_file($filePath);
?>

키 포인트 설명 :

  • 한정된 디렉토리 : 사용자가 시스템 파일에 액세스하는 것을 피하기 위해 Base_dir를 통해 파일을 표시 할 수있는 루트 디렉토리를 정의합니다.

  • 문자 검증 : 파일 이름을 제한하여 문자, 숫자, 밑줄, 짧은 수평선 및 지점 만 포함하도록 제한하고 특수 문자를 제외합니다.

  • RealPath 기능 : 경로 이동 공격을 방지하기위한 경로를 구문 분석하고 정상화합니다.

  • 경로 접두사 일치 : 우회 제한을 방지하기 위해 파일의 실제 경로가 허용 된 디렉토리와 접두어를 접두사 해야하는지 확인하십시오.

  • 파일 존재 확인 : 지정된 파일이 존재하고 일반 파일인지 확인하십시오.


4. 샘플 데모

프로젝트의 PHP_Files 디렉토리에 볼 수있는 PHP 파일을 배치하고 액세스 할 때 URL을 사용한다고 가정하십시오.

 http://gitbox.net/show_code.php?file=test.php

요청은 php_files/test.php 파일의 내용을 안전하게 읽고 강조합니다.


5. 요약

엄격한 파일 경로 점검과 함께 Highlower_File 함수를 사용하면 코드 브라우징 기능의 보안 및 안정성을 크게 향상시키고 경로 교차 및 민감한 파일 누출 위험을 피할 수 있습니다. 모범 사례의 핵심은 다음과 같습니다.

  • 제한된 접근성 루트 디렉토리;

  • 파일 이름이 합법성을 준수하는지 확인하십시오.

  • realpath를 경로 사양으로 사용하십시오.

  • 파일 경로가 지정된 디렉토리에 있어야하는지 확인하십시오.

  • 파일이 존재하고 일반 파일인지 확인하십시오.

이러한 완전한 검사 프로세스는 유연한 코드보기를 보장 할뿐만 아니라 서버 보안을 보장합니다.