나는 대학의 시스템 관리 부서에서 일하면서 아마도 흔한 일을 우연히 발견했지만 꽤 충격적이었습니다.
모든 public_html 디렉토리 및 웹 영역은 웹 서버에 대한 읽기 권한과 함께 afs에 저장됩니다. 사용자는 public_html에 PHP 스크립트를 사용할 수 있으므로 PHP (및 기본 웹 파일)에서 서로의 파일에 액세스 할 수 있습니다.
이로 인해 .htaccess 비밀번호 보호가 완전히 쓸모 없게 될뿐만 아니라, 사용자는 mysql 데이터베이스 비밀번호와 유사한 민감한 정보가 포함 된 PHP 소스 파일을 읽을 수 있습니다. 또는 다른 사람이 웹 서버가 쓰기 액세스 권한을 가진 디렉토리 (예 : 개인 로그 또는 제출 된 양식 데이터 저장)를 가지고있는 디렉토리를 발견하면 해당 계정에 파일을 저장할 수 있습니다.
간단한 예 :
<?
header("Content-type: text/plain");
print file_get_contents("/afs/example.com/home/smith/public_html/.htpasswd");
?>
이것이 일반적인 문제입니까? 일반적으로 어떻게 해결합니까?
최신 정보:
입력 주셔서 감사합니다. 불행히도 간단한 대답이없는 것 같습니다. 이와 같은 대규모 공유 환경에서는 사용자에게 이처럼 많은 선택권이 주어지지 않아야합니다. 내가 생각할 수있는 가장 좋은 방법은 모든 "public_html"디렉토리의 기본 구성에서 "open_basedir"을 설정하고 suphp를 실행하고 깨끗한 PHP 만 허용하는 것입니다 (cgi 스크립트 없음, 백틱으로 외부 명령 실행 등).
이와 같은 정책을 변경하면 많은 문제가 발생하고 사용자가 자신의 갈퀴를 잡고 우리를 쫓아 갈 수 있습니다 ... 설정 변경 방법에 대한 결정을 내리면 동료와 논의하고 업데이트 할 것입니다.
open_basedir
프로덕션 공유 호스팅 시스템에서 아래 의 솔루션을 사용 했지만 모든 사람을 자체 호스트로 분할했습니다. 단일 디렉토리에서 작동하는지 확실하지 않습니다 ...