현재 위치: > 최신 기사 목록> PHP 파일 업로드 보안 정책 : 안전하게 $ _files 배열을 사용하여 파일 정보를 처리하는 방법

PHP 파일 업로드 보안 정책 : 안전하게 $ _files 배열을 사용하여 파일 정보를 처리하는 방법

M66 2025-06-11

파일 업로드 보안 설정

파일 업로드는 웹 개발에서 일반적인 기능입니다. 그러나 업로드 기능이 올바르게 구성되지 않으면 응용 프로그램에 심각한 보안 취약점이 발생할 수 있습니다. 따라서 업로드 프로세스의 보안을 보장하는 것이 중요합니다.

PHP에서는 Php.ini 파일을 통해 관련 제한을 설정하여 잠재적 인 보안 문제를 효과적으로 방지 할 수 있습니다. 다음은 몇 가지 일반적인 설정 옵션입니다.

  • UPLOAD_MAX_FILESIZE- 업로드 할 파일의 최대 크기를 제한합니다.
  • max_file_uploads- 동시에 업로드 할 수있는 파일 수를 설정합니다.
  • allud_file_types- 업로드 할 수있는 파일 유형을 지정합니다.

이러한 매개 변수를 합리적으로 구성하면 과도한 파일 업로드 및 안전하지 않은 파일 유형을 효과적으로 방지 할 수 있으며 시스템 보안을 개선 할 수 있습니다.

$ _files 배열을 사용하여 업로드 된 파일 정보를 얻으십시오

PHP에서 $ _files 어레이는 파일 업로드에 대한 관련 정보를 얻는 데 사용됩니다. 이 배열에는 업로드 된 파일의 이름, 유형, 크기 등과 같은 정보가 포함되어 있습니다. 다음은 기본 예입니다.

<form action="upload.php" method="POST" enctype="multipart/form-data">
  <input type="file" name="file"/>
  <input type="submit" value="업로드"/>
</form>

업로드 파일을 처리 할 때 $ _files 배열을 통해 파일의 정보를 얻을 수 있습니다.

$ file = $ _files [ &#39;file&#39;];
echo "파일 이름 :". $ 파일 [ &#39;이름&#39;]. "<br /> ";
Echo "파일 유형 :". $ 파일 [ &#39;type&#39;]. "<br /> ";
에코 "파일 크기 :". $ 파일 [ &#39;size&#39;]. "바이트<br /> ";
Echo "임시 파일 이름 :". $ 파일 [ &#39;tmp_name&#39;]. "<br /> ";

이 정보를 사용하면 업로드 된 파일을 추가로 처리하고 확인할 수 있습니다.

파일 업로드에 대한 보안 점검

실제 응용 프로그램에서 파일 정보를 얻는 것 외에도 사용자가 악성 파일을 업로드하지 못하도록 보안 검사를 수행해야합니다. 몇 가지 일반적인 보안 검사 방법은 다음과 같습니다.

1. 업로드 된 파일의 마임 유형을 확인하십시오

업로드 된 파일의 MIME 유형은 파일의 진위를 확인하는 데 도움이 될 수 있습니다. 파일 유형을 확인하면 사용자는 무단 파일 유형 업로드를 효과적으로 방지 할 수 있습니다.

$ allend_mime_types = array ( &#39;image/jpeg&#39;, &#39;image/png&#39;);
if (! in_array ($ file [ &#39;type&#39;], $ allend_mime_types) {
  다이 ( "이 유형의 파일 업로드");
}

2. 파일 확장자를 확인하십시오

파일 확장자는 또한 파일 유형을 확인하는 효과적인 방법입니다. 파일의 확장자를 확인하면 업로드 된 파일이 요구 사항을 충족하는지 확인할 수 있습니다.

$ allend_extensions = array ( &#39;jpg&#39;, &#39;png&#39;);
$ extension = pathinfo ($ file [ &#39;name&#39;], pathinfo_extension);
if (! in_array ($ extension, $ allend_extensions)) {
  다이 ( "이 확장자가있는 파일 업로드");
}

3. 업로드 파일을 지정된 디렉토리로 이동하십시오

파일을 업로드 한 후에는 지정된 디렉토리로 이동하고 대상 디렉토리에 악의적 인 파일 업로드를 방지하기위한 적절한 권한 설정이 있는지 확인해야합니다.

$ target_directory = "업로드/";
$ target_path = $ target_directory. $ 파일 [ &#39;이름&#39;];

if (move_uploaded_file ($ file [ &#39;tmp_name&#39;], $ target_path)) {
  echo "파일 업로드가 성공적으로";
} 또 다른 {
  echo "파일 업로드 실패";
}

결론적으로

$ _files 배열을 사용하고 적절한 보안 검사와 함께 파일 업로드로 가져온 보안 위협으로부터 응용 프로그램을 효과적으로 보호 할 수 있습니다. 초보자 개발자이든 숙련 된 전문가이든, 파일 업로드의 보안에주의를 기울이고 모범 사례를 따라 응용 프로그램 및 사용자 데이터의 보안을 보장해야합니다.