programing

프로덕션의 소스 맵 파일-안전합니까?

nasanasas 2020. 12. 9. 08:19
반응형

프로덕션의 소스 맵 파일-안전합니까?


저는 UglifyJS사용하여 내 소스를 축소 및 추방하고 Sentry 를 사용하여 프로덕션 환경의 오류를보고 하고 있습니다.

Sentry에서 읽기 쉬운 방식으로 오류를 얻으려면 소스 맵을 추가해야합니다.

프로덕션 서버에서 수행하는 것이 안전합니까? 아니면 소스 맵 파일이 스테이징 환경에만 있어야합니까?
프로덕션 환경에서 보안을 유지하는 방법이 있습니까?


이에 대한 가능한 해결책을 찾고 누군가 Sentry를 특별히 사용하지 않는 경우 다음 블로그 게시물 (아이러니하게도 Sentry 블로그 게시물)에 도달했습니다.

https://blog.sentry.io/2015/10/29/debuggable-javascript-with-source-maps.html

흥미로운 아이디어가있는 곳 : "개인 소스 맵". 이는 인터넷 (예 : 회사 VPN)에서 액세스 할 수없는 위치에서 소스 맵을 생성하는 것을 의미하므로 귀하 또는 귀하의 팀만 소스 맵 파일에 액세스 할 수 있습니다.

게시물 "Private Source Maps" 섹션을 인용 :

[...] 모든 예제는 소스 맵이 공개적으로 사용 가능하고 실행중인 JavaScript 코드와 동일한 서버에서 제공된다고 가정합니다. 이 경우 모든 개발자는이를 사용하여 원본 소스 코드를 얻을 수 있습니다.

이를 방지하기 위해 공개적으로 액세스 가능한 sourceMappingURL을 제공하는 대신 개발 팀만 액세스 할 수있는 서버에서 소스 맵을 제공 할 수 있습니다. 예를 들어 회사의 VPN에서만 연결할 수있는 서버입니다.

// # sourceMappingURL : http : //company.intranet/app/static/app.min.js.map

팀 구성원이 아닌 구성원이 개발자 도구를 연 상태로 애플리케이션을 방문하면이 소스 맵을 다운로드하려고 시도하지만 404 (또는 403) HTTP 오류가 발생하고 소스 맵이 적용되지 않습니다.

나에게 좋은 생각 같아!


주요 관심사는 "사용자가 내 소스 코드를 가지고 있어도 괜찮습니까?"입니다. 일반적으로 사용자는 어쨌든 일을 난독화할 수 있으므로 괜찮습니다.

즉, Sentry를 사용하는 경우 실제로 릴리스 API사용 하여이 문제를 피할 수 있습니다. 여전히 아티팩트를 생성하고 URL (또는 API가 처리 할 수있는 항목)을 설정해야하지만 인터넷에 노출 할 필요는 없습니다.

참고 URL : https://stackoverflow.com/questions/27345520/source-maps-files-in-production-is-it-safe

반응형