기본 (모범 사례) 및/또는 Linux 서버의 파일 또는 다른 유형의 파일에 PHP가 액세스 할 수 있도록 보안 방법을 제공하지 못했습니다. 공개 웹 디렉토리 또는 아파치 사용자가 소유하고 있으므로 여기에서 몇 가지 답변을 찾으시기 바랍니다.안전하게 시스템 파일에 대한 PHP 읽기 및 쓰기 액세스 허용
필자는 유능한 PHP 프로그래머이지만 일부 서비스 또는 응용 프로그램에서 생성 된 구성 파일이나 파일을 업데이트, 변경 또는 추가해야하는 웹 응용 프로그램 (대부분 웹을 통해 공개적으로 액세스 할 수 없음)을 작성하는 일이 점점 더 늘어나고 있습니다. 서버에.
예를 들어 root가 소유 한 /etc/mail/spamassassin/white-list.cf 파일에서 항목을 보거나 추가하거나 제거 할 웹 인터페이스를 만들어야합니다.
또 다른 시나리오는 사용자 vmail이 소유 한/var/vmail의 MIME 메시지를 구문 분석하기 위해 PHP가 필요하다는 것입니다.
이들은 몇 가지 예이며 다른 프로세스/사용자가 소유 한 위치에 다른 파일이 있습니다. 보안 위험없이 이러한 파일에 안전하게 액세스하고 조작하는 PHP 응용 프로그램을 작성하려면 어떻게해야합니까?
루트가 소유 한 파일에 대한 인증되지 않은 쓰기 액세스를 권장하지 않습니다. 당신이 사용자 입력을 검증하는 데 매우 엄격하고 개별 파일의 소유권을 공유하는 방법에 대해 매우 신중하게 생각한다면 ........ 나는 여전히 이것을하지 않을 것입니다. 'cpanel','webmin' 또는 이미이 기능들과 보안 기능이 내장 된 다른 웹 기반 관리 도구를 사용하십시오. –
감사합니다. 그러나 웹을 통해 서버를 관리하는 유틸리티 나 응용 프로그램을 요구하지는 않습니다. 웹 디렉토리 외부의 파일에 액세스하고 다른 사용자가 소유 한 PHP 코드에 대한 모범 사례를 찾고 있습니다. 다른 말로하면 cpanel, webmin 등과 같은 접근 방식을 사용하고 싶습니다. – Avedis777
내 일반적인 전략은 www-data로 변경 한 내용을 임시 파일이나 DB로 옮기고 루트가 소유하고 실행하는 별도의 PHP 스크립트를 사용하는 것입니다 (cronjob과 같이) 입력을 분석하면 실제로 config 덮어 쓰기가 수행됩니다. –