PHP 개발에서 파일에 특정 권한, 특히 스크립트 파일의 실행 가능성 및 가독성이 있는지 여부를 결정 해야하는 경우가 종종 있습니다. PHP는 IS_Executable () 및 IS_Readable ()의 두 가지 기능을 제공하여 개발자가 허가 판단을 내릴 수 있도록 도와줍니다. 실제 애플리케이션 에서이 두 기능을 결합하면 파일의 액세스 권한을보다 정확하게 제어하여 파일이 실행되기 전에 예상 조건을 충족 할 수 있습니다.
is_executable () 함수는 지정된 파일에 실행 권한이 있는지 확인하는 데 사용됩니다. 함수의 반환 값은 부울 값으로 파일이 실행 가능한 경우 true를 반환합니다. 그렇지 않으면 false .
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일은 실행 가능입니다。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 파일은 실행 가능하지 않습니다。"</span></span><span>;
}
</span></span>is_readable () 함수는 파일에 읽기 권한이 있는지 확인하는 데 사용됩니다. is_executable () 과 유사하게, is_readable () 도 부울 값을 반환합니다. 파일을 읽을 수있는 경우 true , 그렇지 않으면 false .
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일을 읽을 수 있습니다。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 파일은 읽을 수 없습니다。"</span></span><span>;
}
</span></span>때로는 파일을 읽을 수 있는지 또는 실행 파일이 충분하지 않은지 확인하는 것만으로는 충분하지 않으며 개발자는 두 권한을 동시에 판단해야 할 수도 있습니다. 파일을 읽을 수 있고 실행 파일인지 확인해야한다고 가정 해 봅시다. 동시에 두 함수를 동시에 사용하여 달성 할 수 있습니다.
<span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>) && </span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일은 읽기 가능하고 실행 가능합니다。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"이 파일은 읽기, 쓰기 또는 실행 권한이 없습니다.。"</span></span><span>;
}
</span></span>사용자가 파일을 업로드하고 실행할 수있는 스크립트를 작성한다고 가정합니다. 업로드 된 파일에 필요한 권한이 있는지 확인하려면 파일을 실행하기 전에 파일을 읽을 수 있고 실행 가능한지 확인해야합니다.
<span><span><span class="hljs-comment">// 사용자가 업로드 한 파일의 경로</span></span><span>
</span><span><span class="hljs-variable">$uploadedFile</span></span><span> = </span><span><span class="hljs-string">'/path/to/uploaded/script.php'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_readable</span></span><span>(</span><span><span class="hljs-variable">$uploadedFile</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일을 읽을 수 있습니다。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일을 읽을 수 없습니다。"</span></span><span>;
}
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_executable</span></span><span>(</span><span><span class="hljs-variable">$uploadedFile</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일 실행 파일。"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일 실행 가능。"</span></span><span>;
}
</span></span>보안 우선 순위 : 스크립트 실행을 허용하기 전에 파일 소스가 신뢰할 수 있는지 확인하십시오. 외부 업로드를 수행 할 때는 악의적 인 파일을 실행하지 않도록 특히 신중해야합니다.
권한 최소화 원칙 : 특히 생산 환경에서 스크립트에 불필요한 권한을 부여하지 마십시오. 민감한 스크립트 파일의 경우 직접 실행을 피하기 위해 읽기 권한 만 제공하는 것이 가장 좋습니다.
오류 처리 : 파일 권한을 판단 할 때는 친숙한 오류 메시지 반환 또는 후속 문제 해결에 대한 로그를 녹음하는 등 권한이 충분하지 않은 상황을 적절히 처리 할 수 있는지 확인하십시오.
is_executable () 및 is_readable () 함수를 결합하여 개발자는 실행 권한과 파일의 가독성을 효과적으로 판단 할 수 있습니다. 이러한 기능을 합리적으로 사용하면 응용 프로그램의 보안을 개선하고 권한 문제로 인한 보안 위험을 피할 수 있습니다. 또한 파일 권한의 판단은 보안 보호의 일부일 뿐이며 개발자는 시스템의 전반적인 보안을 보장하기 위해 입력 검증, 파일 유형 확인 등과 같은 더 많은 조치를 취해야합니다.
관련 태그:
is_executable