현재 위치: > 최신 기사 목록> MB_SCRUB를 사용하여 파일 이름 문자열을 필터링하기위한 예제 코드와 자세한 설명은 무엇입니까?

MB_SCRUB를 사용하여 파일 이름 문자열을 필터링하기위한 예제 코드와 자세한 설명은 무엇입니까?

gitbox 2025-07-01

파일 업로드 또는 파일 작업을 처리 할 때 파일 이름의 보안 및 합법성이 매우 중요합니다. 불법 파일 이름은 시스템 오류, 보안 취약점 및 파일 덮개 위험을 초래할 수 있습니다. 이 기사는 파일 이름 문자열을 필터링 및 조절하기위한 PHP 기반 사용자 정의 기능 MB_SCRUB를 소개합니다. 특히 멀티 바이트 문자가 포함 된 시나리오에 적합합니다.

MB_SCRUB 기능의 설계 개념

  1. 통합 코딩 <br> 다중 바이트 문자 (예 : 중국어, 일본어, 한국 등)를 올바르게 처리하려면 먼저 MB_CONVERT_ENCODING를 사용하여 입력 문자열을 UTF-8 인코딩으로 변환하여 문자 자르기 또는 차량 코드를 피하십시오.

  2. 문자 필터링 <br> 정기적 인 표현으로 특정 법적 문자 세트가 보존됩니다. 일반적으로 파일 이름으로 허용되는 문자는 다음과 같습니다.

    • 영어 편지 (용량)

    • 숫자

    • 밑줄_

    • 기간 .

    • 하이픈 -

    이 문자는 대부분의 파일 이름 요구 사항을 충족 할뿐만 아니라 특수 문자로 인한 위험을 피합니다.

  3. 특별한 시작을 피하십시오 <br> 파일 이름은 점에서 시작하여 일반적으로 숨겨진 파일 또는 특수 시스템 파일을 나타냅니다. ltrim을 사용하여 처음에 중복 지점을 제거하여 숨겨진 파일이 실수로 생성되지 않도록하십시오.

  4. 빈 문자열 보호 <br> 필터링 후 파일 이름이 빈 문자열 인 경우 기본 파일 이름 (예 : default_filename )이 자동으로 지정되어 후속 파일 작업이 오류로 인한 것을 방지합니다.

샘플 코드 설명

예에서 파일 이름은 불법 파일 이름 <> : "/\ |?*. txt 는 많은 불법 문자를 포함합니다. MB_SCRUB 처리 후에는 허용 된 문자 만 남습니다.

 <span><span><span class="hljs-section">원본 파일 이름:불법 파일 이름&lt;&gt;:"/\|?*.txt</span></span><span>
필터링 된 파일 이름:txt
</span></span>

여기의 예는 비교적 간단합니다. 실제 프로젝트에서는 필요에 따라 허용 된 문자 세트를 조정하거나 추가 규칙 (예 : 길이 제한, 확장 제한 등)과 결합 할 수 있습니다.

사용 권장 사항

  • 파일 확장 점검과 함께 : 파일 이름을 필터링하는 동안 악의적 인 스크립트 파일이 업로드되지 않도록 확장자의 합법성도 별도로 확인해야합니다.

  • 파일 이름 길이 제한 : 과도한 파일 이름으로 인한 시스템 호환성 문제를 피하십시오.

  • 경로 보안 : 파일 이름 필터링은 디렉토리 트래버스와 같은 취약점을 방지하기 위해 PATH 보안 검사를 완전히 대체 할 수 없습니다.

  • 다국어 지원 : MB_SCRUB는 다중 바이트 캐릭터를 잘 지원하며 국제 응용 프로그램에 적합합니다.

MB_SCRUB 와 같은 함수를 합리적으로 사용하면 파일 이름 처리의 보안 및 안정성을 크게 향상시킬 수 있으며 PHP 파일 업로드 또는 파일 작동의 중요한 단계 중 하나입니다.