티스토리 뷰

#Encoding

인코딩이란?

문자 인코딩은 문자들의 집합을 컴퓨터에서 저장하거나 통신에 사용할 목적으로 부호화하는 방법


  • URL 인코딩

    • URL에 포함된 문자들이 안전하게 웹 서버에 전달될 수 있도록 브라우저가 인코딩해 전달함.

    • 예를 들어 < 의 코드 값은 %3c로 인코딩됨.


  • HTML 인코딩

    • HTML문서에서 특별한 기능을 수행하는 문자들을 안전하게 브라우저에 표시하기 위해 사용되는 인코딩 방식


  • BASE64 인코딩

    • BASE64 인코딩은 이메일 첨부 파일들을 인코딩해서 SMTP를 통해 안전하게 전송하거나 HTTP 승인을 할 경우 사용자 인증서를 인코딩할 때 사용한다.

    • 복호화가 되는 암호화


  • 멀티바이트 인코딩

    • EUC-KR

      • 8비트 문자 인코딩방식으로 대표적인 한글 완성형 인코딩 방식

    • MS949

      • Java에서 default로 되어있는 인코딩 방식

    • Unicode

      • 전세계 존재하는 다양한 문자를 표현하기 위해 만들어진 인코딩 방식

    • UTF16

      • URL Encoding과 유사한 방식으로 표시되며 %u를 유니코드 앞에 표시해 %u1234 형식으로 사용됨

    • UTF-8

      • 유니코드를 위한 가변길이 문자 인코딩 방법 중 하나


  • MS Script 인코딩

    • 마이크로소프트 사에서 제공하는 인코딩 방식으로 IE 에서만 사용 가능


  • 실습1. URL 인코딩


먼저 Method1을 실행해본다.




    • hello&test = 10을 입력 후 전송을 누른다. 그러면 콘솔 창에서 이것을 볼 수 있다.  이것을 쪼개보면 &는 %26, =은 %3D 로 바뀌었다.




    • 아래처럼 P@P#P://P~ 이렇게 입력 후 전송을 누른다.


 그러면 콘솔창에서 아래처럼 인코딩 되어 보여진다.




encoding.jsp를 보면 encodingURIComponent라는 함수가 입력한 값을 인코딩해주는 것이다.



그런데, 지금은 Encoding 전이나 후가 똑같이 나오므로, 이것을 바꿔준다.

EncodingController.java 클래스에서 내용을 아래처럼 추가해준다.

즉, encodeURIComponentURLDecoder는 한 쌍처럼 사용해야한다.





이렇게 고치고 다시 테스트를 해보면 이렇게 잘 나온다.






  • 실습2. BASE64 인코딩


두번째로, Method2를 실습해보자.


안녕하세요!라고 적고 전송버튼을 누르면,


아래와 같이 입력값이 디코딩되지 않은채로 결과가 나온다.


일단 먼저 인코딩하는 방식을 보면 encoding.jsp를 보면 된다. 아래와 같이  BASE64.encode 함수가 입력한 값을 인코딩해주는 것이다.  이것을 하려면 javascript가 반드시 필요하다.



그리고 Decoding을 하려면 EncodingController.java 클래스에 아래와 같이 적어준다.




실행하면 결과값이 디코딩되어 잘 나온다.



  • 실습3. URL Encoding, HTML Encoding해 출력

세번째로 Method3을 실습해본다. 


인터넷 익스플로러에서 HTML Encoding이 잘된다..


콘솔창을 보면 아래처럼 전혀 인코딩이 되지 않는 것을 볼 수 있다.

이것을 막아내기 위해 다시 EncodingController를 고쳐준다.



      • URL 인코딩 사용하기



      • HTML 인코딩 사용하기


그리고 실행을 해보면 이제는 alert 창이 안뜨고 인코딩이 잘 된다.










'프레임워크 > Spring' 카테고리의 다른 글

[Mongo DB] Find  (0) 2016.05.31
[Secure Coding 실습] SQL Injection  (0) 2016.05.30
싱글톤  (0) 2016.04.28
[Secure Coding 실습] Paros 설치, Session 과 Cookie  (0) 2016.04.27
Web Socket으로 캐치마인드 만들기  (0) 2016.04.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함