php 보안 관련 문의입니다.

mudori의 이미지

php 스크립트에서
<?
$a=`cat /etc/passwd`;
echo "$a";
?>
라고 입력하고 브라우저에서 보면 진짜 보입니다. 왜 그런가요. 참고적으로
safe_mode는 돌릴 수 없는 상황입니다.

다시 컴파일해야 한다면 무슨 옵션을 주어야 하는지 알려주십시오.

다른 모듈 영향을 받았는지 해결이 않되네요.

nako의 이미지

/etc/passwd 파일은 특별한 파일이 아니고 그냥 644 퍼미션이 걸려 있는 파일일 뿐입니다. 오히려 php에서 644퍼미션 파일도 못읽는다면 그게 더 문제겠지요.

저런 상황이 안생기게 php 스크립트를 작성하면 문제를 피할 수 있습니다.
사용자가 php스크립트를 업로드 한다든지, system() function을 사용하는 지점에서 사용자 입력을 받는다든지 할 때만 주의하면 별 일 없을겁니다.

morris의 이미지

http://www.php.net/manual/en/printwn/features.safe-mode.php

중간에

open_basedir string

를 참고하세요

safe-mode가 켜져있건 안켜져있건 상관없이 되는겁니다

mudori의 이미지

다른 계정도 열릴 가능성이 있기 때문에 그런데요.
로컬만 되고 나머지는 안되었음 하는거라서요.