HTTP 액세스로부터 Flatfiles (SQLITE DB)를 보호하는 대부분의 지원 방법?

StackOverflow https://stackoverflow.com/questions/717444

문제

데이터베이스 관리 시스템, MySQL 및 PostgreSQL 등으로 SQLITE를 사용하는 PHP 응용 프로그램을 개발 중입니다. 대안은 아닙니다 (PGSQL을 실제로 사용하고 싶지만). . 이제 많은 사람들이 공유 호스팅을 사용하고 있으며, 많은 사람들이 HTDOCS- 디렉토리에 직접 FTP 액세스를 제공하지만 그 이상은 아닙니다. 이는 고객이 SQLITE-Database-File을 HTDOC 내부에 넣어야한다는 것을 의미합니다. 즉, 세계에 액세스 할 수 있고 누구나 다운로드 할 수 있음을 의미합니다.

고객에게 그로부터 어떤 종류의 보호를 제공하는 가장 좋은 방법은 무엇입니까? 그것은 모든 HTTP 서버에서 간단하고 지원되는 것입니다.

도움이 되었습니까?

해결책

.htaccess 파일을 사용하고 데이터베이스 이름을 잠그면 외부에 액세스 할 수 없습니다. 많은 서버가 이미 ""로 시작하는 모든 파일 이름에 대해 이미이 작업을 수행합니다. 물론 Apache에서 작동하지만 다른 웹 서버에 대한 수정이 여전히 필요합니다.

가장 좋은 방법은 HTDOC에서 호스팅 할 수 있도록 실제로 설정하는 것입니다. 어쩌면 문서 루트를 확인하고 가능한 경우 SQLITE 파일을 더 높은 디렉토리로 이동시키는 설치 스크립트를 사용할 수 있습니다.

불행히도, 웹 서버와 동일한 사용자가 SQLITE를 읽고 작성하여 외부 액세스에서 잠그는 쉬운 방법은 없습니다. 그것을 숨기고 움직이는 것은 내가 생각할 수있는 유일한 실제 솔루션입니다.

다른 팁

사용중인 모든 HTTP 서버 소프트웨어에서 작동하는 보호 기능은 없습니다. 당신이 할 수있는 최선의 방법은 어떤 웹 서버가 사용되는지에 관계없이 문서 루트 외부로 이동하는 것입니다.

실제로 문서 루트 내부에서 파일이 제공되는 것을 방지하려면 서버 소프트웨어에 대한 지식과 구성 변경이 필요합니다.

기본적으로 (내가 실행 한 Linux 설치의 경우) Apache는 실제로 시작하는 것을 차단합니다. .ht 직접 제공되는 것 :

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

파일 이름과 같은 파일 이름을 사용한다면 sqlite.db 데이터베이스 파일의 경우이 규칙을 사용하여 차단할 수 있습니다.

<Files ~ "\.db$">
    Order allow,deny
    Deny from all
</Files>

물론 대부분의 호스팅 제공 업체 에서이 규칙을 구현하려면 .htaccess 규칙을 포함하는 파일. *niix 디렉토리 목록 (또는 FTP 클라이언트)에 기본적으로 표시되지 않기 때문에 때때로 놓칠 수 있습니다.

공유 호스팅 환경에서 Microsoft IIS 서버에 사용할 수있는 유사한 유형의 규칙을 알지 못합니다.

Apache 웹 서버 인 경우 .htaccess 파일을 사용하십시오. IIS에서 어떻게 해야할지 잘 모르겠습니다.

Browser의 Listing Directory를 방지하기 위해 Empty Index.html 파일을 넣거나 동등한 것을 넣어야한다고 생각합니다. 이름과 경로가 알려진 경우 해당 파일에 액세스하는 것을 방해하지는 않지만 어떤 웹 서버가 켜질 지 확실하지 않으면 아무것도 아닌 것보다 낫습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top