daumPostcode / QnA

Daum 우편번호 서비스 Q&A
http://postcode.map.daum.net/guide
91 stars 13 forks source link

Subresource Integrity (SRI) 보안이슈관련 #137

Open ninetails9 opened 7 years ago

ninetails9 commented 7 years ago

안녕하세요.

http://postcode.map.daum.net/guide 에서 기본사용법 가이드에서 위와 같이 js 파일을 추가하라고 안내를 하고 있는데 Subresource Integrity (SRI) 보안이슈 관련해서 타 도메인(사이트)에서 배포되는 js 파일을 추가할 경우 integrity 값과 함께 crossorigin="anonymous" 을 넣으라고 안내하고 있으며 최신 브라우저에서도 이 부분에 대한 안내를 지속적으로 하고 있습니다.

이와 관련해서 기본사용법 가이드에 js 파일에 대한 integrity 해쉬값을 넣은 가이드를 배포하실 계획은 없으신지요?

참고로 jquery 의 경우 CDN 으로 제공할 경우 아래와 같이 js 파일을 추가하라고 안내합니다.

<script src="https://code.jquery.com/jquery-3.2.1.js" integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE=" crossorigin="anonymous">

daumPostcode commented 7 years ago

@ninetails9

네~ 안녕하세요~

해당 이슈는 저희가 알지 못했던 이슈로, 확인 후 말씀드리도록 하겠습니다. 보안 이슈와 관련해서는 저희가 적극 대응해야되는 것인 만큼, 해당 이슈의 중요성을 판단한 후에 말씀드리도록 하겠습니다.

daumPostcode commented 7 years ago

@ninetails9 안녕하세요~!

현재 저희 API의 배포방식과, jQuery, Bootstrap의 배포방식과 약간의 차이가 있어, 해당 SRI의 적용은 바로는 좀 어려울 것 같습니다.

Jquery와 Bootstrap의 경우 release방식이 버전을 통해, 각각 단일 파일로 업데이트가 되는 반면에, 저희 서비스는 postcode.v2.js라는 로더 파일을 고객분들게 전달하고, 실제 버전업의 경우 postcode.v2.js코드의 내부를 저희가 변경하여 업데이트를 시키는 방식입니다. 즉 서비스를 이용하는 고객분게서 저희 API를 적용할때, 업데이트에 대한 부담을 덜어 드리고자 현재의 다음 지도 v3의 업데이트 방식을 이용하고 있습니다.

즉, SRI를 적용한다면, 실제 로직이 들어가 있는 core스크립트와, 이 코어스크립트를 로딩하는 loader스크립트(postcode.v2.js)모두 SRI를 적용해야 하는데 core스크립트는 적용이 가능하더라도 loader의 경우, 적용을 하였다가 저희가 API업데이트를 할경우, 이용자분들이 즉각적 반영을 해주시지 않으면, 블락이 되버리는 현상이 발생될 소지가 있습니다.

현재 해당 문제는 저희가 배포하는 방식을 변경을 하거나, core스크립트만 적용을 하는 방식으로 할 수는 있으나, 현재 바로 적용은 어려워 보입니다. 해당 사항은 이슈등록을 하고, 추후 적용이 가능한 시점에 적용할 수 있도록 해야할 것 같아요.

도움을 드리지 못해 죄송합니다.

hmmhmmhm commented 2 years ago

@daumPostcode 별도의 URL을 생성하는 방식으로라도 우선순위를 높여서 적용해주시면 좋을 것 같습니다! 최근 보안 이슈들을 볼 때 필요성이 높아질 것 같아요!