2013-07-26 2 views
3

저는 다른 프로그래머를위한 템플릿 엔진을 개발하기 위해 PHP 프로젝트를 진행하고 있습니다. 아이디어는 간단합니다 : 템플리트가있는 템플리트 폴더와 페이지가있는 페이지 폴더가 있고, PHP는 템플리트를 가져 와서 현재 url을 사용하여 페이지를 삽입합니다. 나는 몇 년 전에 객체 지향없이이 프로젝트를 끝냈습니다. 그러나 이제는 객체 지향적 인 포커스를 가지고 작업하려고합니다.PHP에서 구성 파일을 보호하는 방법은 무엇입니까?

제가 직면 한 문제는 구성에 관한 것입니다. 원래 시스템에서는 구성이 하드 코딩 된 PHP 파일 (javascript, pages 등을 포함하는 폴더의 이름)이있었습니다. 새로운 하나는이 데이터를 XML로 저장하려고 생각했지만 문제는 Stackexchange에서 여기를 검색하면 this 질문을 발견했습니다. 올바르게 다시 읽었을 때 다시 쓰기 솔루션을 사용하면 액세스 할 수 없습니다. PHP 스크립트를 사용하고 있기 때문에 브라우저에서 구성 파일을 직접 읽을 수 없도록 보호 할 방법이 없습니다.

어떻게해야합니까? XML을 사용하는 것보다 나은 솔루션이 있습니까? 나는 또한 데이터베이스의 사용을 피하고 있는데, 이것은 MySQL 연결을 포함하기에는 너무 간단하기 때문이다. 나는 XML이 서버 내부에서만 읽을 수 있도록하는 방법이 있다고 확신하지만 이것이 최선의 해결책인지 확신 할 수 없다.

누군가 그 경우에 진행 방법에 대해 말해 줄 수 있습니까?

대단히 감사드립니다.

+4

포함 된 파일 시스템은 웹 서버에서 다시 처리하지 않으므로 안전하게 사용할 수 있습니다. 또한 구성 파일을 문서 루트 외부에 보관할 수도 있습니다. – Orangepill

+0

데이터베이스가 옵션 인 경우 해당 옵션을 탐색하십시오. 나는 약간의 런타임 설정을 위해서 데이터베이스에 연결하는 몇 가지 응용 프로그램을 알고있다. –

+1

'.php' 형식이 아닌 "설정 파일"을 사용할 때는주의해야한다. 이 파일에 직접 액세스하면 클라이언트는 데이터베이스 암호 및 기타 중요한 매개 변수를 포함하여 전체 내용을 볼 수 있습니다. 액세스 권한을 보호하도록 구성된 무언가가 있어도 그렇게하지 않는 것이 좋습니다. 보안에 관해서는 항상 많은 트릭을 결합하는 것이 좋습니다. 어떤 이유로 든 보호가 실패하더라도 액세스 제한을 우회 할 수는 없습니다. – Havenard

답변

5

가장 간단한 해결책은 xml 파일을/htdocs/또는/www/디렉토리보다 상위 디렉토리에 배치하는 것입니다. PHP는 여전히 액세스 할 수 있지만 HTTP 연결은 액세스 할 수 없습니다.

외부 HTTP 요청에 파일을 액세스 할 수있게하려면 .htaccess 파일을 사용하여 디렉토리를 보호 할 수 있지만 엔터프라이즈 수준의 솔루션으로는 권장하지 않습니다. 대안으로 또는 아마도 추가적으로 파일 액세스를 충분히 제한해야하는 66 (4) (죄송하지 않음)으로 파일을 chmod 할 수 있습니다.

+1

chmod 664는 아마 갈 길입니다. 나는 설정 파일이 실행 가능해야한다고 생각하지 않는다. – DeeDee

+1

+1. 웹 루트 바깥 쪽. http를 통해 파일에 직접 액세스하지 않으려면 http를 통해 액세스 할 수없는 곳에 파일을 저장하십시오. 그처럼 간단합니다. – Spudley

관련 문제