回答
我不相信任何瀏覽器目前允許從本地文件加載源地圖,所以你必須把源地圖以某種方式在線。
一種解決方案可能是創建一個.htaccess文件(或者類似的東西,如果您不使用Apache),它將訪問源映射(和原始源文件)限制爲非本地網絡的客戶端。
但是,您應該認識到,出於安全原因,如果您想阻止訪問源映射,那麼您將實現的只是一種虛假的安全感。 Javascript是公開的,即使它被縮小和加密,也很容易解密它。做不是把任何敏感數據放到你的javascript中。即使你對它進行縮小和加密。
它不會運行,如果它是加密的,我認爲你的意思是[模糊](https://en.wikipedia.org/wiki/Obfuscation_%28software%29)? – 2013-07-06 08:45:43
當然,混淆可以通過將代碼傳遞給美化者來解決,但我想我的觀點是,無論您怎麼想,您仍然會將所有代碼和數據發送給客戶端。因此,即使您創建了某種令人驚歎的加密方案,仍然需要發送解密的方式給客戶端,因爲如您所說,否則客戶端將無法運行它。攻擊者所要做的就是在「祕密」數據未加密後的某個時候放置一個斷點。 – AHM 2013-07-09 09:20:52
這不是真正的隱藏敏感數據,而是關於提高功能所需的努力。 – caesay 2016-12-02 10:33:58
以下可能對您有用
Multi-level Source Maps - 的CSS忍者
的聯繫也解釋了使用UglifyJS2與可指定輸入源的地圖。但是,我沒有使用本地輸入源進行測試
此外,您可以嘗試在本地託管文件,並將文件更改爲local.mydomain.com
至localhost
。然後指定local.mydomain.com/js/my-orig-js-file.js
作爲源根目錄
另一種解決方案是上傳映射文件和縮小的js到服務器上,並將原始js文件保存在本地。然後修改您的地圖文件,如下所示:
{
"version":3,
"sources":["http://localhost/library.js"],
"names":["example","console","log"],
"mappings":"AAAA,QAASA,YACRC,QAAQC,IAAI","file":"script.min.js"
}
- 1. 結合JavaScript文件及其源地圖
- 2. 調試笑話與源地圖支持
- 3. Web Essentials 2015未生成JavaScript源地圖
- 4. 在IE7,IE8,IE9和IE10中使用源地圖調試JavaScript?
- 5. 更新生產版本後未顯示Android地圖。只顯示地圖圖塊?
- 6. 本地JavaScript - 寫入本地文件
- 7. 用本地javascript來源從服務器替換Javascript源文件
- 8. Javascript地圖本地對象的方法
- 9. javascript地圖
- 10. Javascript本地工作,但不生產
- 11. 保持本地和生產composer.json文件同步?
- 12. Webstorm遠程調試+編輯本地JavaScript文件,同時調試
- 13. 網站地圖文件對生產
- 14. 適用於Google地圖或活動地圖的JavaScript庫
- 15. 適用於理想Bing地圖或Google地圖的JavaScript UI?
- 16. 從本地代碼調用JavaScript函數
- 17. 谷歌地圖api Javascript的3D地圖
- 18. Javascript v3谷歌地圖旋轉地圖
- 19. Typescript調試只適用於本地文件系統
- 20. 對象地圖Javascript
- 21. 當本地圖像源文件更改
- 22. 用於生產的CDN,用於開發的本地文件
- 23. JavaScript和HTML圖像地圖
- 24. 負荷谷歌地圖的JavaScript文件
- 25. 保存本地javascript變化
- 26. 調試由AVL樹支持的地圖?
- 27. 生成地圖文件
- 28. 未調用API文件時本地化Google地圖
- 29. 地圖地圖 - 如何將內部地圖保存爲地圖?
- 30. 將Google地圖地理編碼API密鑰遷移到生產
考慮到所有JavaScript代碼都是公開的,無論如何,您對地圖文件的隱私擔憂是什麼? – Quantastical 2013-04-02 16:42:11