제목 | .doc 파일 첨부했는데 mine type이 text/html로 나오는건 왜 일까요? | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 그동안 | 작성시각 | 2021/04/08 15:38:53 |
|
|||
안녕하세요, 혹시 아시는 분 계시면 댓글 좀 부탁 드립니다. 확장자가.doc 파일을 첨부했는데, mine type이 "text/html"로 찍히는 건 왜 일까요? echo mime_content_type('가나다.doc'); 모든 doc 파일이 그런 건 아니고요, 예를 들면 잡코리아에서 다운받은 이력서 파일(doc)는 모두 그렇습니다.아마도 html이 포함되어 있어서 그런 듯 한데요. 1. html이 포함되어 있어도 doc 파일인데, "application/msword" 이런걸로 찍혀야 하지 않나요?? 2. text/html로 찍히는데 통과시켜버리면, 보안상 문제가 될까요? (참고로 프론트에서 doc 확장자 체크는 하고 있습니다) |
|||
다음글 | 2개의 테이블 페이징처리 (7) | ||
이전글 | 메일API를 통한 발송결과 값 받기 (8) | ||
PureAni
/
2021/04/08 17:32:37 /
추천
0
서버에서 인식가능한 mine_type 타입을 추가해주셨나요?
|
토끼깽깽
/
2021/04/08 17:39:56 /
추천
0
https://www.php.net/manual/en/function.mime-content-type.php mime_content_type 함수는 magic.mime 을 사용하는데 이는 확장자를 통한것이 아니라 파일의 특정 시그니쳐 값을 가지고 판단을 하는 것으로 알고 있습니다. 보안상 더 좋은 방법이지만 잘못된 시그니쳐 값을 가지게 될 경우 mime type 을 올바르게 특정지을 수 없습니다. 아마 질문하신 내용의 경우에는 다운로드시 html 이 포함되어 있어 그런 것 같습니다. |
변종원(웅파)
/
2021/04/09 09:26:05 /
추천
0
모든파일의 마임타입이 꼭 일치하지 않습니다. 이미지의 마임타입을 변조해서 해킹하는 사례도 있었구요. 얼마든지 변조 및 변경이 가능한 부분이라서 생성하는 측에서 제대로(?) 넣지 않으면 어쩔 수 없습니다. 예외처리를 해주셔야 업로드가 됩니다. |
그동안
/
2021/04/09 09:39:58 /
추천
0
파일 생성한 쪽에서 mime type을 제대로 넣어줘야 하는거군요. 저는 제 쪽에서 이거를 누락한게 있어서 그런가 보다! 라고 생각하고 있었거든요. 'doc' => array('application/msword', 'application/vnd.ms-office','application/vnd.oasis.opendocument.text','application/octet-stream'),
ps. 예외 처리를 하면 체크하는 의미가 없을꺼 같은데... 어쩔수 없는거겠죠? |