2015-09-27 58 views

回答

3

你真的很關心我的建議是使用專業的服務來保護你的代碼。例如。 Jscrambler

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混淆

相關問題