웹마스터 팁



예전에 만들어놓았던 문서인코딩 소스입니다.
스트링 객체에 대한 이해가 좀 있다면 쉽게 만들수 있는 소스죠.

입력받은 소스를 escape() 시킨다음에 각각의 모든 문자들의 아스키값을
정해준 만큼 더해줍니다.
그리고 여기에 디코딩 함수를 포함한 스크립트를 덧붙여 출력해주죠.

디코딩의 원리는 위의 역순이구요.


예전에 만들었을땐 입력받은 문자열의 아스키값을 더해 나온값이
줄바꿈에 해당하는 문자열일때 에러가 나는 오류가 있었는데
수정 했습니다.

스크립트에 관한 약간의 이해가 있다면 이 소스의 치명적인 약점을
쉽게 찾을수 있을겁니다.


미리 보기 : http://allzza.net/xxx/aboard.php?id=pds
참조 : http://www.tagmania.net/zboard/zboard.php?id=jschool&page=8&select_arrange=headnum&desc=desc&sn=off&ss=on&sc=on&divpage=1



<html>
<head>
<title>
String 와 form 객체를 이용한 암호화 소스
</title>

<script>

/////////////////////////
// 소스 : 미친개
// 이멜 : webmaster@allzza.net
// 멜룽----ㅡ,.ㅡ
/////////////////////////////



msg = false;
dum = 1;
        //-- dum 은 1 에서 5 까지 취향에 맞게 선택하세요
        //-- 이 숫자가 0 이면 암호화가 되지 않습니다.
        //-- 1에서 5정도가 적당합니다..
              
function encode()  {
        myObj = document.myform.aaa;
        str = escape(myObj.value);
        end_num = str.length - 1;
        encode_str = '';
  
        befstr =   '<html><head><title></title><sc'
                 + 'ript>str2 = "'
        aftstr =   '";eh = "";for(k=0;k<str2.length;k++)'
                 + '{eh+=String.fromCharCode(str2.charCodeAt(k) - ' + dum + ');}'
                 + 'document.write(unescape(eh));</scr'
                 + 'ipt><body></body></html>'



        for(i=0;i<=end_num;i++)   {
           //if(str.charCodeAt(i)==9) i++;
           key = 1*str.charCodeAt(i) + dum;
           encode_str += String.fromCharCode(key);
           }
        document.myform.aaa.value = befstr + encode_str + aftstr;
        }


function getstr(value)   {

   var cs = document.myform.aaa.value;
   var str_num = cs.indexOf(value);    
   return str_num;          
   }
    

function decode()   {

   myObj = document.myform.aaa;
   str = myObj.value;
   //dum = 40000;
   //-- 위에 덤이랑 같은 숫자로...^..^
   decode_str = '';
   str_start = getstr('str2 = "') + 'str2 = "'.length;
   str_end = getstr('";eh');
  for(i=str_start;i<str_end;i++)  {
      key = 1*str.charCodeAt(i) - dum;
      decode_str += String.fromCharCode(key);
      }
  document.myform.aaa.value = unescape(decode_str);
}

function view_source()   {
  abab = prompt('페이지의 주소를 써 넣으세요','http://');
  window.location = 'view-source:' + abab;
  }
</script>


</head>
<body bgcolor=#aaaaaa>

<form name=myform>
<table border=1>
<tr><td>
<textarea name=aaa ROWS=15 COLS=50></textarea>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=ccc value='인코딩' onclick='encode();'>
<input type=button          value='디코딩' onclick='decode();'>
<input type=reset name=ddd value='다시'>
<input type=button value='소스불러오기' onclick='view_source();'>
</td></tr>

</table>
</form>


      



</body>
</html>
제목 글쓴이 날짜
푸시알림 앱 소개 pushbullet 안드로이드와 아이폰, 데스크탑까지 되면서 공짜!! garnecia 2015.05.28
(version 1.6)새글과 새댓글을 알림받는 앱을 직접 만들어보세요(XE 홈페이지와 연동되는 GCM을 이용한 푸시 안드로이드 앱 만들기 가이드-XE 알림센터 연동) [23] 단희아빠 2015.03.21
네이버맵 좌표(Lat, Lng) 검색기 YJHOON 2015.05.27
공지목록의 추출기준을 문서번호가 아니라 글순서로 변경 sejin7940 2015.05.26
설문조사 컴퍼넌트의 종료일 관련 버그 수정 sejin7940 2015.05.26
외부이미지 링크 + 고해상도 이미지 섬네일 생성 팁 socialskyo 2015.05.26
XE Core 안정된 버젼 좀 알려주세요.. [1] 팔도준 2015.05.26
자바로 스크롤 구현 [1] 착한동구 2015.05.25
레이어형 로그인 사용시에 SSL 적용방법 (선택적 사용시) [1] 불금 2015.05.20
XE Lighttpd Rewrite rule YJSoft 2015.05.22
모바일뷰 사용 안 할때 (반응형등) 에도 '모바일에서 최적화된 화면으로 보기' 가 나오는 버그 패치 sejin7940 2015.04.10
XE 템플릿 문법 : 조건부 class 작성하기 AJKJ 2015.05.23
추천수로 제목에 효과주기 [15] こさき! 2014.04.29
확장 컴포넌트 밖으로 뺀 후 완전한 버튼화 [1] file 키스미베이베 2015.05.20
RSS 게시판 업데이터 모듈이 SSL 부분적용시 동작하지 않는 문제 해결하기 [25] Gunmania 2013.02.25
플렛모바일 네이버로 로그인하기 버튼 file LI-NA 2015.05.17
오늘 작성된 게시글수 [2] file kdp 2015.05.07
확장변수(textarea)에서 html 사용하기 [3] 하늘종 2010.11.01
선택된 카테고리의 공지글들만 나타나게 하는 팁 [1] sejin7940 2012.04.02
XE 외부페이지 직접접속 차단 및 다국어 설정팁 [4] 라르크앙시엘 2012.01.01