2009-10-13 2 views
0

나는 다소 문서 관리 시스템에서 일하고있다. 최종 사용자는 비즈니스 클래스 사용자입니다.문서 관리 응용 프로그램에서 허용하는 파일 형식/확장명은 무엇입니까?

I 현재 확인하고는 다음 중 하나가있는 경우에만 파일을 업로드 할 수 있습니다 :

"png|jpe?g|gif|xls|doc|docx|csv|ppt|txt|pdf|rtf" 

을 내 질문입니다 -

  • 내가 목록에 "XML"을 추가하는 경우? 보안 문제가 발생할 수 있습니까?

  • 내가 추가 할 수있는 다른 문서 유형/확장명은 무엇입니까?

또는

나는 "exe|bat|php|js"하지 확인하고 모든 다른 유형을 허용해야 하는가?

제안 해 주셔서 감사합니다.

답변

5

"exe | bat | php | js"가 아닌지 확인하고 다른 모든 유형을 허용해야합니까?

아니요. 화이트리스트는 블랙리스트보다 좋습니다. 많은 위험한 파일 유형이 있습니다. 그 4 명은 간신히 표면을 긁는다.

"xml"을 목록에 추가하면 어떻게됩니까? 보안 문제가 발생할 수 있습니까?

예 [X] [HT] ML은 서비스를 제공 한 사이트의 보안 컨텍스트에서 작동하는 스크립팅을 포함 할 수 있습니다. 귀하의 사이트에 문서를 업로드하여 귀하의 사이트에 자바 스크립트를 삽입 할 수있는 사용자를 허용합니다 (쿠키를 도용, 위조 등 요청).

그러나 실제로 여기에없는 보안 문제는 추가되지 않습니다. 파일 형식/확장명으로 허용 목록을 작성하는 것조차 안전하지 않기 때문에 IE와 그 오식 된 형식 스니핑 덕분입니다. .txt 파일을 업로드하고 Content-Type: text/plain 헤더를 사용하여 올바르게 게재 할 수 있지만 IE에 HTML처럼 보이는 시퀀스가 ​​포함되어있는 경우 IE는 사용자를 무시하고 HTML 붐, XSS로 렌더링합니다.

(같은 정말 다른 유형의 사실이지만, 가장 공개적으로 취약가 .txt입니다.)이 엉망 고정에 대한 두 가지 접근 방식

있습니다

  1. 모든 사용자 업로드으로 게재 서로 다른 JS 보안 컨텍스트에 있고 쿠키 또는 인증 데이터를 공유하지 않도록 다른 호스트 이름의 파일을 기본 응용 프로그램 사이트에 복사합니다.

  2. 은 항상 Content-Disposition: attachment 헤더가있는 모든 사용자 업로드 파일을 제공하므로 다운로드되어 브라우저에 표시되지 않습니다.

(2) 자체에 방수해야하지만, 실제로 과거에 기인 브라우저와 플러그인 공격에 주위 방법이 있었다, 그래서 나는 내가 완전히 신뢰했던 모르겠어요. (1) 자체는 XSS를 멈추지 만 사이트를 이용하기위한 iframe을 포함하는 HTML 파일과 같은 다른 nasties는 멈추지 않습니다.

그래서 둘 다하는 것이 가장 좋습니다.

+0

아 .. 좋은 지적. 감사. – TigerTiger

1

나머지 새로운 MS Office 형식, xlsx, pptx 및 유사한 파일을 잊지 마십시오.

보안 위험 요소는 파일 액세스 위치 및 방법에 따라 다릅니다. 문서 관리 관점에서 볼 때, XML은 내가 기본적으로 가정할만한 것이 아니지만 필요하다고 생각할 수 있습니다.

콘텐츠 제공을 보호하지 않는 한 와일드 카드 제외 목록을 작성하지 않을 것입니다.

1

새로운 MS Office 문서 확장명과 오픈 오피스 문서를 추가하면 도움이 될 것입니다. 아마도 Zip/Rar 아카이브를 추가하는 것도 옵션 일 수 있지만 파일에 대한 직접 액세스를 제한해야합니다.

요청에 따라 새 문서 유형을 추가 할 수있는 명확한 메시지와 링크를 추가하는 것이 도움이 될 수 있습니다.

관련 문제