그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 숨기기는 것은 아니고 알아보기 어렵게 만들기 정보
그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 숨기기는 것은 아니고 알아보기 어렵게 만들기첨부파일
본문
https://github.com/tholu/php-packer 를 이용해 그누보드5 자바스크립트에서 사용하는 전역변수 선언 내용을 알아보기 어렵게 만드는 방법
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
- 수정 후 ----------------------------------------------------------------------
<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>
그누보드5 소스보기에서 자바스크립트에서 사용하는 전역변수가 위와 같이 보이는 것을 아래와 같이 바꿔서 출력해 준다.
<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>
1. https://github.com/tholu/php-packer로 가서 파일을 다운받는다.
필요한 파일은 src폴더에 있는 Packer.php (첨부해 두었음)
2. Packer.php 를 그누보드 extend 폴더에 넣는다.
3. head.sub.php의 아래 내용을 다음과 같이 수정해준다.
- 수정전 ----------------------------------------------------------------------
<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>
- 수정 후 ----------------------------------------------------------------------
<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>
추천
3
3
댓글 7개
찾던 부분이었는데..정말 감사합니다!!
도움이 되신다니 반갑습니다.
좋은 팁입니다^^ 감사합니다
혹시 해당 아래부분의
<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파일들도 저런식으로 처리할수있을까요?
일단 <script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>는 그냥 두시고, 아래처럼 하시면 될 듯 싶은데요...
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
<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>
* 근데 이런 식으로 불러오면 되는게 있고 안되는게 있고 그렇습니다. 경험상 packed된 min.js들은 안되더라고요. 아직 배움이 부족하여, 정확히 왜 그런건지는 잘 모르겠습니다.
좋은 팁이네요
멋진팁!
php 7 이상 버전에서도 정상 작동하나요??