2009-09-17 7 views
2

중요한 정보가 들어있는 약 18,000 개의 PDF를 생성해야합니다. PDF는 웹 응용 프로그램을 통해 최종 사용자에게 제공됩니다. 분명히 일부 사용자는 다른 사용자보다 더 많은 보고서를 볼 필요가 있습니다. 필자가 PDF를 제공하는 두 가지 방법은 각 PDF를 웹 응용 프로그램 아래의 디렉토리에 저장하거나 PDF를 데이터베이스에 저장하는 것입니다. PDF는 승인 된 사람들 만 볼 수 있어야하고 사용자가 다른 사용자 정보를보기 위해 URL을 추측하지 못하게해야합니다. 그러나이 정보를 데이터베이스에 저장하는 것은 조금 주저합니다.안전한 생성 된 PDF 파일

다른 편으로 한 가지 방법이 선호됩니까?

답변

6

두 웹 사이트가 동일한 웹 사이트를 통해 제공되는 경우 데이터베이스의 PDF는 디스크의 PDF보다 안전하지 않습니다. 웹 서버가 디스크 리소스와 마찬가지로 PDF 요청을 처리 할 수 ​​있도록 허용하지 않는 한. 당신의 경우에 나쁜 생각이 될 것입니다.

비슷한 요구 사항을 가진 프로젝트에서 작업했습니다. 당사의 문서는 디스크에 저장되며 (웹 사이트의 URL을 통해 직접 액세스 할 수 없음) 위치 및 보안 정보는 데이터베이스에 저장됩니다.

문서에 대한 요청이 들어 오면 사용자에게 문서에 대한 권한 (데이터베이스에 대한 쿼리)이 있는지 확인한 후 파일 위치를 가져 와서 응답 스트림을 통해 직접 파일을 배달합니다.

+0

또한 PDF를 생성 할 때 '저장 안 함'및 '인쇄 안 함'옵션을 활성화해야합니다. –

+0

이러한 옵션은 제안 사항 일 뿐이라는 사실을 알고 계십니까? –

+0

예, 누구든지 pdf를 제공하는 링크를 마우스 오른쪽 버튼으로 클릭하거나 URL을 구성하여 직접 디스크에 저장할 수 있습니다. 그리고 당신이 볼 수있는 것을 인쇄 할 수 있습니다. (snipping tool을보십시오) – Will

2

PDF를 문서 트리에 저장하지 마십시오. URL이 없기 때문에 사용자가 URL에 입력 할 수있는 방법이없는 곳에 드라이브에 다른 위치를 두십시오. 그런 다음 사용자가 데이터를 볼 권한이 있음을 확인한 후에 만 ​​프로그래밍 방식으로 데이터를 검색하고 프로그램에서 다시 바이트를 공급합니다.

양자 택일로, 당신은 아파치 기본 인증 또는 무엇이든 해당하는이 서버에 같은 웹 서버 보안을 사용하여 해당 디렉토리에 암호를 각 사용자에 대한 문서 트리에 별도의 디렉토리를 만들어 넣을 수 있습니다. 이는 더 간단 할 수 있지만 사용자가 일관성없는 조합으로 문서를 공유 할 수있는 경우 (예 : A1과 Bob이 # 1을 볼 수 있고 Al과 Cathy는 # 2를 볼 수 있고 Cathy와 Dave는 # 3 등을 볼 수 있음) 작동하지 않습니다.

+0

확실히, 문서 루트 아래에 파일을 두지 마십시오. 단지 트리의 일부에 대한 접근을 제한해야합니다. 그리고 HTTP 서버에 따라 백업/복원이보다 간단해질 수 있습니다. – NVRAM