2010-12-30 4 views
0

Apache 2.x Ubuntu 서버에서 Perl CGI 스크립트를 통해 데이터를 저장해야합니다. 액세스 할 수있는 데이터가 인 경우에만 Apache (또는 Perl 스크립트)에 대한 RW 액세스가 있고 이 아닌 URL에서을 사용할 수 있어야합니다.웹 서버에 업로드 영역 샌드 박싱

한 가지 해결책은 데이터베이스를 설치하는 것입니다. 그 종속성을 피하고 고유 한 파일 이름에 데이터를 저장하고 싶습니다 (이 방법은이 응용 프로그램에서 작동합니다).

그러나 저는 이것을 구성하는 좋은 방법에 익숙하지 않습니다.

웹 서버의 파일 IO에 'sandbox'디렉토리를 설정하는 데 필요한 구성은 해당 디렉토리에 대한 URL을 허용하지 않고 무엇입니까?

+0

아파치 웹 루트 외부에있는 한 어떤 장소가 없어야합니까? –

답변

1

디렉토리를 문서 루트 외부에두고 (문서 루트에 별명이있는 디렉토리 또는 mod_rewrite를 통해 맵핑 된 디렉토리 외부에) 디렉토리를 배치하십시오. Apache와 Perl 스크립트는이 위치에 대한 읽기/쓰기가 가능합니다 (위치에 대한 전체 경로와 올바른 파일 권한이 있음). URL을 통해 액세스 할 수 없습니다.

중요한주의 사항이 있습니다. 문서 루트 외부의 파일은 URL을 통해 직접 액세스 할 수 없지만 Perl 스크립트가 파일의 컨텐츠를 표시하는 경우 XSS 및 정보 유출에 대한 일반적인 보안 문제가 발생합니다. 또한 파일 이름의 "고유성"또는 그 결함이이 디자인에 어떻게 영향을 미치는지주의해야합니다. 사용자가 의도적으로 파일을 덮어 쓰거나 파일 이름을 추측하려고 시도 할 수 있습니다.