웹마스터 팁



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

입력받은 소스를 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>
제목 글쓴이 날짜
MARIADB or MYSQL 의 INNODB로 엔진 변경 PHP스크립트 간장게장같은남자 2015.06.10
트래픽 차단된 이미지들 보는 방식 만들었네요. SeungXE 2015.06.10
외부이미지 저장 애드온을 본문을 읽으면 작동하도록 하자!! 1.7.3적용 [18] 하얀마법 2013.03.16
1.8.3 통합 검색시 제목+내용 으로 하기 불금 2015.06.09
탑으로 가는 버튼이 특정위치에서 나타나게 하기 file 동네남자 2015.06.09
창크기에 따라 생기고 없어지는 배너 만들기 [1] 착한동구 2015.06.05
구글 웹폰트 부분으로 적용하기 착한동구 2015.06.05
알림LITE의 모바일쪽지 확인시 "잘못된 요청" 처리법 [1] Hello_XE 2014.10.28
php 버전을 다운그레이드 하기 [2] 6미리 2015.06.04
간단하게 외부 SMTP 로 인증메일 보내기. [1] file AJKJ 2014.07.22
Hostinger(호스팅어) 등 해외 서버에서 XE 설치화면이 깨진다면 [9] file YJSoft 2015.01.11
구글에서 제공하는 웹폰트 적용법 착한동구 2015.06.04
(오류x, 정보)ckeditor와 xpresseditor의 서식은 서로 다르네요. 반응형만드실 때 주의하실 필요가 있겠습니다. 큰성565 2015.06.04
코어 1.5 모바일에서 닉네임 클릭시 팝업 메뉴안 뜰때.. 착한악마 2015.06.03
자바스트립으로 내용을 숨겼다/보이기 착한동구 2015.06.03
저같은 초보분들이 궁금해 하실것같아서요 [3] file 착한동구 2015.05.08
cloudflare에서 nginx 아이피 제대로 표시하기 [3] natura 2014.11.13
카르마님의 외부 이미지 저장 애드온 에서 swf를 받아오기 불금 2015.06.01
네이버 카페 처럼 조회하고 [2] XE모듈 2015.05.31
타임라인 모듈 두개 이상 생성 및 페이지가 넘어가지 않은 문제에 관하여 함삐까 2015.06.01