2009-04-01 3 views
0

나는 업로드 된 사용자의 폴더로 가득 찬 upload라는 폴더가 있습니다.폴더 보안?

주소 표시 줄에 폴더 이름과 파일 이름을 입력하여 사용자 파일을 직접 다운로드하지 못하게 할 수있는 방법이 있습니까?

예 : 사용자 짐의 폴더가 호스트에 저장/업로드/짐

단지 경우 짐의 중요한 파일 "myimportantfile.txt은"

이제 HOST/업로드/짐/myimportantfile.txt에 저장됩니다

사용자 누구든지 검색 주소창에 입력하면 www.HOST.com/uploads/jim/myimportantfile.txt에서 Jim의 중요한 파일을 볼 수 있습니다.

어떻게 이런 일이 일어나지 않게 할 수 있습니까?

디렉토리를 만들 때 특정 속성을 쓸 수 있습니까?

답변

4

웹 액세스 가능 폴더에 파일을 보관하고 싶지는 않습니다. 웹 루트 밖으로 이동하십시오.

일단이 작업을 수행하면 파일 ID를 전달하는 download.php와 같은 파일을 가질 수 있습니다. 그러면 실제로 파일을 요청한 Jim이 유효한지 확인한 다음 파일을 가져 와서 브라우저를 첨부 파일로 사용하십시오. 이것은 보안을위한 가장 안전하고 안전한 방법입니다.

+0

물론 사용자가 파일 ID에 해당하는 파일에 액세스 할 수 있는지 확인하십시오. 그렇지 않으면 사용자가 파일을 검색 할 수 있습니다. 파일 및 디렉토리 이름 대신 파일 ID를 사용합니다. –

+0

나는 그 말은하지 않고 있다고 생각 하겠지만, 당신은 결코 그렇게 확신 할 수 없다고 생각합니다. 업데이트 됨 : –

+0

그래, 아무 말도하지 않고,하지만 초보자가 그렇게 쉽게 이해할 수 없을 수도 있습니다 :) –

0

물론 Linux에서는 기본 파일/디렉토리 권한을 사용할 수 있습니다. 또한 전체 트리가 아파치에 의해 거부되도록 설정할 수 있습니다.

실행중인 플랫폼/웹 서버 소프트웨어는 무엇입니까?

디렉토리의 소유자가 '조', 그리고 그룹이 다음 '아파치'인 경우 :

좋아, 리눅스

chmod 750 joe 

이 디렉토리 '조'권한을 부여 것이다 소유자 (joe) 전체 액세스, 그룹 (apache) 쓰기 액세스 (디렉토리를 입력 할 수있는 기능) 및 기타는 허용하지 않습니다.

FTP 드롭 박스입니까?

현재 소유권/그룹은 무엇입니까?

+0

죄송합니다. 중복 된 경우 ... 내가 삭제할 모드를 넣으면. – ojblass

+0

아파치를 사용하고 있습니다. 어떻게해야합니까? –

+0

Xampp (winxp), Apache - 그렇습니다. –

1

디렉토리의 파일 사용 권한 + w-r + x는 디렉토리 쓰기를 사용하지만 읽기는 허용하지 않습니다. 괴짜 유닉스 용어로 이것은 % chmod 733 dirname입니다. 디렉토리 소유권은 chownchgroup을 사용하여 올바르게 설정해야합니다. 이것은 유닉스 환경에 적용됩니다.

+0

733 사실, 당신이 디렉토리에 아무것도 쓸 수 없기 때문에, 당신이 그것을 입력 할 권한이 없다면 (eXecute bit) – vartec

0

.htaccess 파일을 사용하여 사용자 이름과 암호를 입력해야 각 폴더를 보호 된 폴더로 만들 수 있습니다.

하지만 최선의 방법은 웹 루트 외부에서 업로드 폴더를 이동하여 직접 액세스 할 수 없도록 한 다음 요청 된 파일을 처리하는 스크립트 (PHP, ASP 등)를 만드는 것입니다. 사용자를 인증합니다.

0

가장 간단한 해결책은 index.htm 파일을 폴더에 추가하는 것입니다.

모든 방문자는 파일 색인 대신이 페이지를 볼 수 있습니다.

페이지를 비워 둘 수 있으며, 리디렉션을 사용하여 도메인 홈 페이지로 리디렉션 할 수도 있습니다.