전공/실무

[Nodejs] 난독화, 복호화(암호화)

하루는노력 2018. 4. 12. 16:33
728x90
반응형
javascript는 보안에 취약하다.
더군다나 제품으로 만들거나, 수익용으로 만들기에는 불충분하다.
그리고 회사 내에서 하는 개발 작업도 그룹끼리 공유하고 배포라는 이름으로 제공하고 싶을때가 있다.

아래 방법은 node 기반으로 만들어진 소스를 암호화 하는 방법에 대한 공유 이다.
그 방법을 공유해서 it 현업에 도움임 되길 기대 한다.

아래 소스는 gulp 라는 모듈을 설치하고, 실행하는 기초적인 소스 샘플이다.


npm install gulp -g
npm i gulp --save-dev

npm install gulp-concat --save-dev

npm i gulp-uglify -D
npm install gulp-uglify --save-dev


gulp.task('default', ['concat:js','uglify']);

//실행
> gulp default



두번째는 더 구체적인 샘플 소스를 보여준다.
실제 사용하는 파일을 *.js 로 만들고 아래 소스를 그대로 사용해도 될 만큼 현재 쓰고 있는 기본 방법이다.

각 소스에 대한 설명은 주석으로 작성했다. 

//Gulp 모듈 호출
var gulp = require('gulp');

//Gulp 의 concat 패키지 모듈 호출
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');

//...

/*
gulp.src([
'project/src/js/navigation.js',
'project/src/js/slider/*.js',
'!project/src/js/slider/slider-beta.js'
]);
 */
//Gulp.task() 를 사용해 기본(Default) 테스크를 정의
gulp.task('combine:js', function(){
//return gulp.src('/src/**/*.js')
return gulp.src('src/mssql.js')
.pipe(concat('mssql.js'))
//.pipe(uglify())

.pipe(uglify({
mangle : true, // 알파벳 한 글자 압축 과정 설정
preserveComments : 'some' // 'all', 또는 'some'
}))

.pipe(gulp.dest('routes'));
});

gulp.task('watch', function () {
gulp.watch('src/mssql.js', ['combine:js']);
});


//gulp.task('default', ['combine:js']);
//gulp.task('default', ['concat:js','uglify']);
gulp.task('default', ['combine:js','watch']);


반응형
LIST

'전공 > 실무' 카테고리의 다른 글

정규식 및 비교 기타  (0) 2018.04.12
[Linux] CentOS 리눅스 명령어  (0) 2018.04.12
[Nodejs] 소켓(socket.io) 연동  (0) 2018.04.03
Nodejs 외부모듈  (0) 2018.02.08
[flash]drag&drop  (0) 2012.12.06