본문 바로가기

CS35

[Clean Coding] 주의깊은 코드 SOLID jUnit : 단위 테스트 툴 비야네 스트롭스토룹 (C++ 창시자)- 논리가 간단해야 하며, 효율적이어야 한다.- 의존성을 최대한 줄여야 한다.- 깨끗한 코드는 한 가지 만을 제대로 한다. 그래디 부치- 깨끗한 코드는 단순하고 직접적이다.- 잘 쓴 문장처럼 잘 읽힌다. (가독성)- 설계자의 의도를 그대로 나타낸다.- 명쾌한 추상화와 단순한 제어문으로 가득하다. 데이브 토마스- 깨끗한 코드는 작성자가 아닌 사람도 읽고 고치기 쉽다.- 단위 테스트와 인수테스트가 존재한다.- 의미있는 이름을 사용한다. 마이클 페더스- 깨끗한 코드는 주의깊게 짰다는 느낌을 준다.- 고칠 부분이 없다. [ SOLID ] SRP : Single Responsibility Principle하나의 클래스는 하나의 기능만 수행해야 한다.. 2016. 4. 29.
[Secure Coding] 비밀번호 암호화 하기 SHA-256 와 SHA-512 와 RSA방식을 가장 많이 쓴다.MDS는 나온지 너무 오래되서 취약하다. 뽐뿌가 이거쓰다가 털렸다. SHA-256을 실습해보자 1. USERS 테이블에 SALT 컬럼을 추가해보자2. 회원 비밀번호를 SALT를 사용한 SHA-256으로 암호화 하자SHA-256은 64 자리 문자열이 출력된다. sha256은 hash 함수의 일종이다hash 함수라는게 뭐냐면 다 알고 있겠지만 간단히 설명해보겠다 y = x + 2 이런 함수는 y를 알면 x도 알 수 있다하지만 y = hash(x) 이런 해쉬 함수는 y를 알아도 x를 알 수 없는게 특징이다그리고 모든 x값에 대해 각기 다른 y값을 내뱉는 특징 때문에 x가 원본임을 증명하는 일종의 시그니쳐로도 사용할 수 있다(정확하게 말하자면 ha.. 2016. 4. 28.
[Secure Coding] 해킹방지 코드짜기 12345678910111213@RequestMapping("/attack/encoding/method1") public String encodingMethod1(HttpServletRequest request, HttpServletResponse response) { String textData = request.getParameter("text"); System.out.println("Encoding 전 : " + textData); // URLDecoder 를 이용한 Encoding textData = URLDecoder.decode(textData); System.out.println("Encoding 후 : " + textData); return "attack/encoding/encoding";.. 2016. 4. 27.
[Secure Coding] Paros 64비트에서 실행 Paros : Proxy tool 웹 요청을 처리할 때 임시 저장소를 거쳐서 데이터를 가져오는 요청 및 응답의 중개자 접속이 안되게 막는 경우 -> proxy서버에서 막는다.사용자가 보낸 요청을 중간에 바꿔서 보내는 등 악성코드를 집어넣고 요청을 바꾸는 해킹을 할 수 있다. http://sourceforge.net/projects/paros 에서 paros를 다운받는다.32비트에서만 작동하므로 64비트 컴퓨터에서는 32비트용 jdk를 다운받아 실행시키면 된다.paros를 오른쪽클릭해서 속성에 들어간 다음 대상에 "C:\Program Files (x86)\Java\jdk1.8.0_73\bin\javaw.exe" -jar paros.jar 를 넣어준다. 그러면 64비트에서도 실행될 수 있다.만약 바로 실행되.. 2016. 4. 27.