현재 위치: > 최신 기사 목록> 공개 웹 사이트에서 하이라이트 _file 유출 소스 코드를 피하기위한 보안 조언

공개 웹 사이트에서 하이라이트 _file 유출 소스 코드를 피하기위한 보안 조언

gitbox 2025-05-26

1. Highlower_File 함수 소개

Highter_File 은 PHP의 내장 기능으로 웹 페이지에서 지정된 파일의 PHP 코드를 강조하는 데 사용됩니다. 구문은 다음과 같습니다.

 highlight_file('example.php');

이 함수는 지정된 파일의 내용을 읽고 PHP 코드를 색상 형식으로 출력하여 코드 구조 및 논리를보다 쉽게 ​​볼 수 있습니다.


2. Highlight_File을 사용하여 가져 오는 보안 위험

  1. 소스 코드 누출 <br> 공개 웹 사이트에 PHP 파일 소스 코드를 직접 표시하면 데이터베이스 연결 정보, API 키, 비즈니스 로직 및 사용자 개인 정보 보호 데이터가 노출되어 공격 위험이 크게 높아질 수 있습니다.

  2. 코드는 악의적으로 악용됩니다 <br> 공격자는 소스 코드를 확인하여 시스템 구조를 이해하고 취약점 입구를 찾고 SQL 주입 및 원격 코드 실행과 같은 공격을 시작합니다.

  3. 웹 사이트 이미지 및 사용자 신뢰에 영향을 미칩니다 <br> 공개 소스 코드는 사용자가 웹 사이트가 제대로 안전하지 않다고 생각할 수 있으며 신뢰를 줄일 수 있습니다.


3. 소스 코드 유출을 방지하기위한 보안 제안

1. 제어 된 환경에서만 Highlight_File을 사용하십시오

  • Highlower_File이 개발 환경이나 제한된 내부 환경에서만 사용되도록하고 프로덕션 환경이나 공개 페이지에서 호출되지 않도록하십시오.

  • 서버 구성 ( .htaccess , nginx 규칙 등)을 사용하여 소스 코드 디스플레이 페이지에 대한 액세스를 제한하십시오.

2. 액세스 권한을 사용하여 확인하십시오

사용자 인증을 통해 액세스를 제한하고 관리자 또는 공인 직원 만 소스 코드를 볼 수 있도록합니다. 예를 들어:

 session_start();
if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] !== true) {
    die('소스 코드에 액세스 할 수있는 권한이 없습니다');
}
highlight_file('path/to/file.php');

3. 디스플레이 컨텐츠를 동적으로 제어합니다

민감한 파일을 직접 표시하지 마십시오. 먼저 탈감작 또는 부분 표시를 위해 파일 내용을 읽을 수 있습니다. 예를 들어 데이터베이스 비밀번호를 숨 깁니다.

 $code = file_get_contents('path/to/file.php');
$code = preg_replace('/(\$db_password\s*=\s*)["\'].*?["\'];/', '$1"*****";', $code);
highlight_string($code);

4. URL 매개 변수를 통해 파일 경로를 직접 지정하는 것은 금지되어 있습니다.

디렉토리 트래버스 공격을 방지하기 위해 URL 매개 변수를 파일 경로로 직접 사용하지 마십시오. 예를 들어:

 $allowed_files = ['config.php', 'index.php'];
$file = $_GET['file'] ?? '';
if (!in_array($file, $allowed_files)) {
    die('불법 요청');
}
highlight_file("files/{$file}");

5. 서버 구성을 사용하여 소스 코드에 대한 직접 액세스를 금지합니다.

PHP 파일을 웹 루트 디렉토리 외부에 배치하거나 서버 구성을 통해 소스 파일에 대한 액세스를 금지합니다. 예를 들어, nginx에서 :

 location ~ \.php$ {
    deny all;
}

4. 샘플 코드 (안전 조치 포함)

 <?php
session_start();

// 관리자 만 볼 수 있습니다
if (!isset($_SESSION['is_admin']) || $_SESSION['is_admin'] !== true) {
    die('소스 코드에 액세스 할 수있는 권한이 없습니다');
}

// 볼 수있는 파일 목록
$allowed_files = ['index.php', 'config.php'];
$file = $_GET['file'] ?? '';

if (!in_array($file, $allowed_files)) {
    die('불법 요청');
}

$filepath = __DIR__ . "/files/{$file}";

// 코드 내용을 읽으십시오
if (file_exists($filepath)) {
    $code = file_get_contents($filepath);

    // 간단한 탈감작 예
    $code = preg_replace('/(\$db_password\s*=\s*)["\'].*?["\'];/', '$1"*****";', $code);

    highlight_string($code);
} else {
    echo '파일이 존재하지 않습니다';
}
?>

5. 요약

Highlower_File을 사용하면 PHP 코드를 쉽게 볼 수 있지만 소스 코드를 보호하지 않은 소스 코드 표시는 심각한 보안 문제로 이어질 수 있습니다. 개발자는 민감한 파일의 직접 노출을 피하기 위해 액세스 권한을 엄격히 제한하고 소스 코드가 공개적으로 공개되지 않도록 서버 보안 구성을 채택해야합니다.

코드 보안 보호는 웹 사이트의 안정성과 사용자 정보의 보안을 보장하는 핵심 단계입니다. 이 기사의 제안이 Highlower_File을 안전하게 사용하고 불필요한 안전 위험을 피하는 데 도움이되기를 바랍니다.