그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 숨기기는 것은 아니고 알아보기 어렵게 만들기
https://github.com/tholu/php-packer 를 이용해 그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 알아보기 어렵게 만드는 방법
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "//sir.kr";
var g5_bbs_url = "//sir.kr/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_bo_table = "g5_tip";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = ".sir.kr";
var g5_plugin_url = "//sir.kr/plugin";
var g5_mb_open = "0";
var g5_time_ymd = "2016-09-05";
var g5_time_ymdhis = "2016-09-05 15:32:22";
var g5_download_level = 1;
var g5_download_point = 0;
var g5_is_mobile = false;
var g5_download_level = 1;
var g5_download_point = 0;
</script>
[/code]
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
[code]
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2 f="//3.4";2 h="//3.4/j";2 k="1";2 q="";2 r="a";2 b="";2 c="";2 d=".3.4";2 e="//3.4/t";2 g="0";2 i="5-6-7";2 m="5-6-7 n:o:p";2 8=1;2 9=0;2 s=l;2 8=1;2 9=0;',30,30,'||var|sir|kr|2016|09|05|g5_download_level|g5_download_point|g5_tip|g5_sca|g5_editor|g5_cookie_domain|g5_plugin_url|g5_url|g5_mb_open|g5_bbs_url|g5_time_ymd|bbs|g5_is_member|false|g5_time_ymdhis|15|32|22|g5_is_admin|g5_bo_table|g5_is_mobile|plugin'.split('|'),0,{}))
</script>
[/code]
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "<?php echo G5_URL ?>";
var g5_bbs_url = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
</script>
[/code]
- 수정 후 ----------------------------------------------------------------------
[code]
<script>
<?php
$js_global_vars = '';
$js_global_vars .= 'var g5_url = "'.G5_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bbs_url = "'.G5_BBS_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_member = "'.(isset($is_member)?$is_member:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_admin = "'.(isset($is_admin)?$is_admin:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_mobile = "'.G5_IS_MOBILE.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bo_table = "'.(isset($bo_table)?$bo_table:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_sca = "'.(isset($sca)?$sca:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_editor = "'.(($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_cookie_domain = "'.G5_COOKIE_DOMAIN.'";'.PHP_EOL;
if(defined('G5_IS_ADMIN')) {
$js_global_vars .= 'var g5_admin_url = "'.G5_ADMIN_URL.'";';
}
$js_global_vars2 = new Tholu\Packer\Packer($js_global_vars, 'Normal', true, false, true);
$js_global_vars3 = $js_global_vars2->pack();
echo $js_global_vars3;
?>
</script>
[/code]
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "//sir.kr";
var g5_bbs_url = "//sir.kr/bbs";
var g5_is_member = "1";
var g5_is_admin = "";
var g5_bo_table = "g5_tip";
var g5_sca = "";
var g5_editor = "";
var g5_cookie_domain = ".sir.kr";
var g5_plugin_url = "//sir.kr/plugin";
var g5_mb_open = "0";
var g5_time_ymd = "2016-09-05";
var g5_time_ymdhis = "2016-09-05 15:32:22";
var g5_download_level = 1;
var g5_download_point = 0;
var g5_is_mobile = false;
var g5_download_level = 1;
var g5_download_point = 0;
</script>
[/code]
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
[code]
<script>
eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('2 f="//3.4";2 h="//3.4/j";2 k="1";2 q="";2 r="a";2 b="";2 c="";2 d=".3.4";2 e="//3.4/t";2 g="0";2 i="5-6-7";2 m="5-6-7 n:o:p";2 8=1;2 9=0;2 s=l;2 8=1;2 9=0;',30,30,'||var|sir|kr|2016|09|05|g5_download_level|g5_download_point|g5_tip|g5_sca|g5_editor|g5_cookie_domain|g5_plugin_url|g5_url|g5_mb_open|g5_bbs_url|g5_time_ymd|bbs|g5_is_member|false|g5_time_ymdhis|15|32|22|g5_is_admin|g5_bo_table|g5_is_mobile|plugin'.split('|'),0,{}))
</script>
[/code]
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
[code]
<script>
// 자바스크립트에서 사용하는 전역변수 선언
var g5_url = "<?php echo G5_URL ?>";
var g5_bbs_url = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
</script>
[/code]
- 수정 후 ----------------------------------------------------------------------
[code]
<script>
<?php
$js_global_vars = '';
$js_global_vars .= 'var g5_url = "'.G5_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bbs_url = "'.G5_BBS_URL.'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_member = "'.(isset($is_member)?$is_member:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_admin = "'.(isset($is_admin)?$is_admin:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_is_mobile = "'.G5_IS_MOBILE.'";'.PHP_EOL;
$js_global_vars .= 'var g5_bo_table = "'.(isset($bo_table)?$bo_table:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_sca = "'.(isset($sca)?$sca:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_editor = "'.(($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:'').'";'.PHP_EOL;
$js_global_vars .= 'var g5_cookie_domain = "'.G5_COOKIE_DOMAIN.'";'.PHP_EOL;
if(defined('G5_IS_ADMIN')) {
$js_global_vars .= 'var g5_admin_url = "'.G5_ADMIN_URL.'";';
}
$js_global_vars2 = new Tholu\Packer\Packer($js_global_vars, 'Normal', true, false, true);
$js_global_vars3 = $js_global_vars2->pack();
echo $js_global_vars3;
?>
</script>
[/code]
댓글 7개
9년 전
찾던 부분이었는데..정말 감사합니다!!
변태스타킹
9년 전
도움이 되신다니 반갑습니다.
9년 전
좋은 팁입니다^^ 감사합니다
혹시 해당 아래부분의
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<script src="<?php echo G5_JS_URL ?>/jquery.menu.js"></script>
이런 js파일들도 저런식으로 처리할수있을까요?
혹시 해당 아래부분의
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<script src="<?php echo G5_JS_URL ?>/jquery.menu.js"></script>
이런 js파일들도 저런식으로 처리할수있을까요?
변태스타킹
9년 전
일단 <script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>는 그냥 두시고, 아래처럼 하시면 될 듯 싶은데요...
[code]
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<?
$js_strs = '
<script src="'.G5_JS_URL.'/jquery.menu.js"></script>
<script src="'.G5_JS_URL.'/common.js"></script>
<script src="'.G5_JS_URL.'/wrest.js"></script>
';
$js_array = array_values(array_filter(array_map("trim",explode("\n", $js_strs))));
$packed_js = "";
foreach($js_array as $js_str){
$packed_js .="$('head').append('".$js_str."');".PHP_EOL;
}
$packed_js = str_replace("/script>", "/' + 'script>", $packed_js);
$packed_js2 = new Tholu\Packer\Packer($packed_js, 'Normal', true, false, true);
$packed_js3 = $packed_js2->pack();
?>
<script><?php echo $packed_js3; ?></script>
[/code]
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
[code]
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<?
$js_strs = '
<script src="'.G5_JS_URL.'/jquery.menu.js"></script>
<script src="'.G5_JS_URL.'/common.js"></script>
<script src="'.G5_JS_URL.'/wrest.js"></script>
';
$js_array = array_values(array_filter(array_map("trim",explode("\n", $js_strs))));
$packed_js = "";
foreach($js_array as $js_str){
$packed_js .="$('head').append('".$js_str."');".PHP_EOL;
}
$packed_js = str_replace("/script>", "/' + 'script>", $packed_js);
$packed_js2 = new Tholu\Packer\Packer($packed_js, 'Normal', true, false, true);
$packed_js3 = $packed_js2->pack();
?>
<script><?php echo $packed_js3; ?></script>
[/code]
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
9년 전
좋은 팁이네요
9년 전
멋진팁!
8년 전
php 7 이상 버전에서도 정상 작동하나요??
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4410 | ||
| 2394 | 1년 전 | 5051 | ||
| 2393 |
|
1년 전 | 1699 | |
| 2392 |
|
1년 전 | 1358 | |
| 2391 |
|
1년 전 | 1140 | |
| 2390 |
|
1년 전 | 1194 | |
| 2389 | 1년 전 | 1780 | ||
| 2388 | 1년 전 | 1327 | ||
| 2387 | 1년 전 | 1309 | ||
| 2386 |
투명한열정
|
1년 전 | 3073 | |
| 2385 |
|
1년 전 | 2344 | |
| 2384 | 1년 전 | 1669 | ||
| 2383 | 1년 전 | 1803 | ||
| 2382 | 1년 전 | 1455 | ||
| 2381 |
|
1년 전 | 1873 | |
| 2380 | 1년 전 | 1042 | ||
| 2379 | 1년 전 | 1385 | ||
| 2378 | 1년 전 | 919 | ||
| 2377 | 1년 전 | 2997 | ||
| 2376 | 1년 전 | 1563 | ||
| 2375 | 1년 전 | 1736 | ||
| 2374 |
네이비스택
|
1년 전 | 1117 | |
| 2373 | 1년 전 | 1549 | ||
| 2372 | 1년 전 | 1469 | ||
| 2371 |
goodman148
|
1년 전 | 2112 | |
| 2370 | 1년 전 | 1521 | ||
| 2369 |
|
1년 전 | 1033 | |
| 2368 | 1년 전 | 1836 | ||
| 2367 | 1년 전 | 1356 | ||
| 2366 |
|
1년 전 | 1214 | |
| 2365 | 1년 전 | 2144 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기