2010-08-06 3 views
8

데이터베이스 연결 바스 등이 포함 된 내 자신의 작은 프레임 워크에 "globabVars.php"문서가 있습니다. 웹 디렉토리 외부에 저장하는 것이 깔끔할 것이라고 생각합니다. 좀 더 안전하게 지켜야합니다. 그러나 그때 나는 생각하고 있었다, 그것은 정말로 THAT 훨씬 더 안전한가요? 내 말은, 누군가 내 .php 파일을 전체적으로 볼 수 있다면 (서버를 처리하지 않고) 내 서버를 내 모든 서버에서 볼 수 있다는 것입니다 ...보안을 위해 WWW 외부의 PHP 파일을 숨기기

생각은?

답변

5

웹 루트 외부에서 구성 파일을 이동하면 실수로 아파치를 잘못 구성하면이 파일이 유출되는 것을 막을 수 있습니다. 예를 들어 Apache의 mod_php을 제거하면 모든 .php 파일이 텍스트 파일로 취급됩니다. 나는 이런 이유로 프로덕션 시스템에서 웹 루트 외부로 이동 한 설정 파일을 보았으며 파일 유출을 막았습니다! (관리자가 업데이트 중에 구성을 확인했습니다.) 이것은 자주 발생하지 않지만. file_get_contents(), fopen(), readfile() 또는 fgets() 다음 그가 당신의 시스템의 모든 파일을 읽을 수 있습니다

공격자가 이러한 기능 중 하나의 경로를 제어 할 수있는 경우

. 또한 SQL 주입에 대해 걱정해야합니다. 예를 들어, MySQL 아래의이 쿼리는 파일을 읽는 데 사용할 수 있습니다 : select load_file("/etc/passwd").

이 문제를 완화하려면 PHP에서 사용하는 MySQL 사용자 계정에서 FILE 권한을 제거하십시오. 또한 chmod 500 -R /path/to/web/root을 수행하십시오. 마지막 2 개의 0은 다른 계정이 파일에 액세스하지 못하게합니다. 당신은 또한 chown www-data -R /path/to/web/root을 따라 가야합니다. www-data는 PHP가 실행되는 사용자 계정입니다. <?php system('whoami');?>을 실행하면이 사실을 알 수 있습니다.

+0

루크 래드 :) 내가 물어 보자. 서버 측 프로그램에 대한 내 액세스 권한이 익숙하다고 가정하는 "cpanel"과 같은 관리자가 일반적으로 사용할 수있는 것으로 제한되는 경우 FILE 권한을 제거하거나 해당 경로를 chmod 할 수 있습니까? 내 접근이 웹 아래 한 수준으로 제한되어있는 것 같은데 ... PHP가 앉아있는 곳이라고 생각하지 않습니다. 이것은 내가 서버 관리자와 함께해야 할 일입니까? 나는 hostgator btw를 사용하고 있습니다 ... 그들에 관한 어떤 공포 이야기? –

+0

@ Jascha 대부분의 호스팅 업체가 이미 MySQL 계정을 잠그고 있지만 hostgator에 관해서는 아무 것도 들었습니다. 테스트하기 쉽고, load_file 쿼리를 실행 해보십시오. 예, cPanel을 사용하여 파일을 chmod 할 수 있습니다. phpmyadmin을 사용하여 MySQL 권한을 변경할 수는 있지만, 부여해서는 안되는'GRANT' 권한이 필요합니다. – rook

2

기본적으로 누구도 URL을 통해 액세스 할 수 없습니다.

docroot에서 인 경우 .htaccess으로 숨길 수 있지만 docroot 위에 저장하면 더 안전합니다.

응용 프로그램이 directory traversal attacks 인 경향이있는 경우 PHP를 통해 읽을 수 있습니다.

2

네가 옳다. 아주 작은 차이가 있습니다.

+0

Shrapnel 그건 내 생각 이었어. 나는 FTP 보안에 익숙하지 않지만 공격을 막기 위해 스크립트의 프론트 엔드에 원하는 모든 멋진 트릭을 수행 할 수 있으며 누군가가 ftp를 통해 백도어를 통해 표시 될 수 있음을 잘 알고 있습니다. 특히 소수의 내 고객 암호를 고려하면 똑같습니다. (아무에게도 말하지 마십시오). –

+0

@ Jascha 네, 그게 사실입니다. 요즘 트로이 목마 프로그램은 클라이언트 컴퓨터에서 FTP 암호를 훔쳐 내 사이트를 감염시킵니다. 그러나 다른 보호 장치를 사용하지 않는 이유가 될 수는 없습니다. –

+1

트로이 목마로부터 보호해야하는 것은 다소 아이러니합니다. 죄송합니다. –

관련 문제