任何cordova應用程序只是一個原生的web視圖和一個www文件夾,其中包含HTML javascript和css中的全部功能,所以該應用程序完全暴露,如何讓任何人閱讀應用程序源代碼?我可以混淆離子應用程序嗎?如果是的話如何?
4
A
回答
3
你真的很關心我的建議是使用專業的服務來保護你的代碼。例如。 Jscrambler
4
是的,你可以。有一個cordova插件來隱藏html,js和css文件。你可以在這裏找到它:Cordova crypt file plugin
0
我發現它,當縮小時的角度問題是縮小打破了依賴注入。
一種解決方案是使用基於字符串注入的語法,它將每個注入的參數映射到永不受縮小影響的字符串。
例如:
angular.module('app', []).controller(['$scope', function($scope) {
//code
}]);
另一種解決方案是使用ngAnnotate
我寧願與gulp
任務運行
var gulp = require('gulp');
var ngAnnotate = require('gulp-ng-annotate');
var concat = require('gulp-concat');
var uglify= require('gulp-uglify');
gulp.task('task1', function() {
return gulp.src('src/js/*.js')
.pipe(concat('bundle.js'))
.pipe(ngAnnotate())
.pipe(uglify())
.pipe(gulp.dest('dist'));
});
0
另一個很好的功能是隱藏你的重要腳本的位置路徑中使用它。我發現了一個偉大NPM插件這個https://www.npmjs.com/package/location-hide
原來
<script src="test/folder/sample.js" type="text/javascript"></script>
<link href="test/stylesheet/perfect-scrollbar.css" rel="stylesheet">
到
<script src="TNANIuTOLZfmLYwaPDIYhcZDVOWKodqYhysaTeQHFPDhYlDLCOtxZqYmkKAhaSwSgbsYOWlpBzVSBtMZKSfwRqvPSqWVlBBuzHR" type="text/javascript"></script>
<link href="gyXeFnOEvZbgTjLvdZRnsyrfhaXqffkDjcdATTouqpIenCalLRXKamuXEtiKbPGCsNrdQIaqTMTNWsLyLFuxygKytaruWzSjKYMq" rel="stylesheet">
而且它產生新的jQuery包括像這樣的代碼包含在一個外部文件
用JavaScript腳本$('[src=\'TNANIuTOLZfmLYwaPDIYhcZDVOWKodqYhysaTeQHFPDhYlDLCOtxZqYmkKAhaSwSgbsYOWlpBzVSBtMZKSfwRqvPSqWVlBBuzHR\']').attr("src", "test/folder/sample.js")
$('[href=\'gyXeFnOEvZbgTjLvdZRnsyrfhaXqffkDjcdATTouqpIenCalLRXKamuXEtiKbPGCsNrdQIaqTMTNWsLyLFuxygKytaruWzSjKYMq\']').attr("src", "test/stylesheet/perfect-scrollbar.css")
此外,我會建議你,包括所有o f在1個單獨的js文件中使用外部JavaScript代碼。你把這個文件在你的索引文件的根目錄,你可以做這個
<script src="./allinone_external_file.js" type="text/javascript"></script>
然後做出正確的htaccess,沒有人能存取權限此文件。您也可以爲每個人都可以看到的源代碼製作一個僞造的導入腳本。但是這個文件只是真正的外部js文件的重定向。你可以多次作爲例子+使用其他混淆工具。這將保護您免受使用您的JavaScript代碼搜索漏洞利用的人。我知道它沒什麼大不了,也許你可以看到jQuery包含代碼,如果你知道如何。但無論如何這是一個很好的保護。
0
我建議使用babili庫(https://github.com/babel/babili) 並形成您的應用程序,以便使用電子分發代碼而不是從源代碼混淆代碼。
例如包含的package.json腳本這樣的:
"main": "release/app.js",
"scripts": {
"debug": "node ./node_modules/electron/cli.js ./app/app.js",
"build": "./node_modules/.bin/babili app -d release -D",
"test": "./node_modules/.bin/electron ./release/app.js",
"pack": "./node_modules/.bin/build --dir --ia32"
}
.babelrc
{
"presets": ["es2015"]
}
順便說一句巴貝爾還支持ES6/7混淆
相關問題
- 1. 我可以使用離子框架構建openTok(tokbox)混合應用程序嗎?
- 2. 是否可以調試混淆的Android應用程序?
- 3. 我們可以在電話/離子應用程序混合應用程序中使用socket.io(即node.js之一)
- 4. 離子 - 混淆的版本
- 5. 如何爲JavaFX應用程序創建可執行混淆jar?
- 6. 是值得嘗試的Spring應用程序的混淆嗎?
- 7. 我該如何混淆monogame windows8 metro應用程序?
- 8. 我可以混淆編譯的.NET可執行文件/程序集嗎?
- 9. 如何我可以重新加載離子應用程序,如果用戶打開GPS
- 10. ProGuard的混淆(PhoneGap的應用程序)
- 11. 是否可以混淆在Visual Studio 2008中創建的ClickOnce應用程序?
- 12. 混淆的Web應用程序干將
- 13. 我可以將Facebook事件整合到離子應用程序中嗎?
- 14. 如何使用Ant&YGuard對我的web應用程序project.war進行混淆?
- 15. 我們可以設置android keyboad的位置嗎?如果是的話如何?
- 16. 聊天應用程序,如何避免混淆輸出
- 17. 如何在發佈前混淆網絡應用程序?
- 18. 如何確保Proguard已經混淆了應用程序?
- 19. 部署C#應用程序(混淆)
- 20. Android應用程序名稱混淆
- 21. 混淆.NET Web應用程序
- 22. 您可以將Apple的mapkit用於混合應用程序嗎?
- 23. 我們如何混淆android應用程序中的twitter API密鑰和祕密
- 24. Powershell可以說,但如果我說話可以寫嗎?
- 25. 什麼是用來混淆這個Javascript或者我如何去混淆它?
- 26. 我可以混淆MySQL中的SQL代碼嗎?
- 27. Proguard的混淆不斷崩潰我的應用程序
- 28. Android混淆程序
- 29. C程序混淆
- 30. 如果我的應用程序可以從Facebook和網站訪問,我可以使用read_stream權限嗎?