2013-03-27 1 views

답변

16

현재 모든 브라우저가 로컬 파일에서 소스 맵을로드 할 수 있다고 생각하지 않습니다. 따라서 소스 맵을 온라인으로 가져와야합니다.

소스 파일 (및 원본 소스 파일)에 대한 액세스를 로컬 네트워크에없는 클라이언트로 제한하는 .htaccess 파일 (또는 Apache를 사용하지 않는 경우 유사)을 만들 수 있습니다. .

보안상의 이유로 소스 맵에 대한 액세스를 막으려면, 모두 안전하다는 잘못된 인식이 있어야합니다. Javascript는 공개되어 있으며 암호화되어 있어도 암호화를 해제하는 것이 매우 쉽습니다. 아니요은 자바 스크립트에 중요한 데이터를 입력하십시오. 심지어 당신이 그것을 축소하고 암호화하더라도.

+1

암호화되어 있으면 실행되지 않을 것입니다. [난독 화] (https://en.wikipedia.org/wiki/Obfuscation_%28software%29)를 의미하는 것 같습니까? –

+0

물론 난독 화 코드를 전달하여 난독 화를 풀 수도 있지만, 내 생각에 무엇을 생각하든 여전히 모든 코드와 데이터를 클라이언트에 보낼 것입니다. 따라서 놀라운 암호화 체계를 만들었더라도 클라이언트가이를 암호화 할 수있는 수단을 보내야합니다. 그렇지 않으면 클라이언트가 클라이언트를 실행할 수 없기 때문입니다. 공격자가해야 할 일은 '비밀'데이터가 암호화되지 않은 상태에서 중단 점을 넣는 것입니다. – AHM

+0

중요한 데이터를 숨기는 것이 아니라 기능을 향상시키는 데 필요한 노력을 높이는 것입니다. – caesay

4

유용 할 수 있습니다 다음과 같은 사항에 대해

Multi-level Source Maps - CSS의 닌자

링크는 또한 입력 소스 맵이 지정 될 수있는 UglifyJS2를 사용하여 설명한다. 그러나 로컬 입력 소스로 테스트하지 않았습니다

또한 로컬에서 파일을 호스팅하고 local.mydomain.com에서 localhost과 같은 파일을 변경해보십시오. 그리고 local.mydomain.com/js/my-orig-js-file.js을 소스 루트로 지정하십시오.

0

또 다른 해결책은 맵 파일과 축소 된 j를 서버에 업로드하고 원본 js 파일을 로컬로 유지하는 것입니다. 그런 다음지도 파일을 다음과 같이 수정하십시오.

{ 
    "version":3, 
    "sources":["http://localhost/library.js"], 
    "names":["example","console","log"], 
    "mappings":"AAAA,QAASA,YACRC,QAAQC,IAAI","file":"script.min.js" 
}