2012-03-04 2 views
0

저는 웹 사이트 용 코드를 작성하는 데있어 새로운입니다. 이 웹 사이트에서는 사용자가 프로필 사진이나 다른 사진과 같은 파일을 업로드 할 수 있습니다. 파일은 유닉스 파일 시스템에 저장되며 해당 이미지를 찾기위한 URL은 MySQL 데이터베이스에 저장됩니다.웹 서버의 파일 사용 권한은 무엇입니까?

사용자가 파일을 업로드하도록 허용하는 유일한 방법은 chmod를 사용하여 다른 사용자에게 쓰기 권한을 부여하는 것입니다. 그렇지 않으면 쓰기 권한이 없다고 불평합니다. 그러나 그들은 원하는 것을 쓰거나 다른 사용자의 것을 덮어 써서는 안됩니다. 마찬가지로 사용자가 정당한 액세스 권한이있는 이미지를 볼 수있게하려면 파일 시스템에 대한 읽기 권한이 있어야합니다. 하지만 이제는 그 그림에 대한 URL을 가진 사람도 이미지를 볼 수 있음을 의미합니다. 맞습니까? 그건 내가 원하는 것이 아니야.

이 모순에 대한 해결책이 있습니까? 또는 문제를 잘못 생각하고 있습니까? 어떤 도움을 주셔서 감사합니다.

답변

0

응용 프로그램에서 권한을 관리하고 로컬 파일 시스템의 임의의 부분을 클라이언트에 직접 노출하지 않아야합니다. 응용 프로그램은 사용자가 볼 수있는 파일이나 데이터를 쓸 수있는 위치를 결정해야합니다. 클라이언트의 데이터 (파일 이름 등)를 신뢰해서는 안됩니다 ... 체계적으로 생성 된 이름을 사용하여 디스크에 파일을 저장하고 사람이 읽을 수있는 이름을 데이터베이스에 저장하는 것이 이상적입니다.

0

SunStar9,

이미 파일 시스템에 이미지의 URL을 저장하기 위해 MySQL 데이터베이스를 사용하고 있기 때문에, 왜 다만 BLOB (이진 대형 개체)로 이미지 자체를 저장?

이것은 일반적으로 사용자가 바이너리 데이터를 웹 사이트에 업로드 할 수 있도록 허용 된 디자인 방식입니다.

웹 사이트를 개발하는 데 PHP, Java, Ruby/Rails 또는 다른 것을 사용하고 있습니까? 사용중인 파일에 따라 파일 업로드/관리 플러그인이나 모듈이있어 이미지 데이터를 저장하기 위해 파일을 사용하려는 경우 수행하려는 작업을 개발하는 데 도움이됩니다.