프로그래밍44 [Web] OWASP ZAP로 HTTP Method 확인하기 웹 취약점 검사 도구인 OWASP ZAP를 사용하여 서버에서 허용된 HTTP Method를 확인하는 방법입니다. 사용된 소프트웨어 버전은 OWASP ZAP 2.9.0 버전입니다. 사용법 1. 검사할 사이트를 스캔하여 히스토리를 일단 만듭니다. 그 후 히스토리를 우클릭하여 요청 편집기를 열어주세요. 2. 요청 편집기에서 요청 헤더를 수정한 뒤 보내기를 눌러주세요. 이번 실습에선 HTTP Method를 보기 위하여 최초 GET으로 되어있던 부분을 OPTIONS로 변경했습니다. 3. 응답 확인 위와 같이 HTTP Method Allows가 노출되는 것은 보안 취약점이라고 하니까 감추는 방법을 다음 포스트에서 알아보도록 하겠습니다. 2020. 8. 24. [JAVA] static과 final의 컴파일 자바에서 자주 쓰이는 정적(static) 변수와 상수(final) 변수가 컴파일 시에 어떻게 변하는지 기록합니다. 크게 신경 쓰지 않아도 괜찮지만 간혹 문제를 발생하는 경우가 있으니 알고 있으면 좋겠습니다. static 컴파일 전(Var.java) public class Var { public static String str = "정적"; } 컴파일 전(Use.java) public class Use { private String str = Var.str; } 컴파일 후(Var.class) public class Var { public static String str = "정적"; } 컴파일 후(Use.class) public class Use { private String str = Var.str; }.. 2020. 8. 11. [JAVA] IP 를 long 형으로 변환하기 접근 제어 시 특정 IP를 허용, 금지는 간단하게 이 꼴(=) 연산으로 구분할 수 있습니다. 그러나 특정 IP의 범위를 허용해 주기 위해선 어떻게 해야 할까요? IP를 long 형식으로 비교! private long convertIP2Long (String ip) { /* IP = IP1.IP2.IP3.IP4 * 공식 > IP1 * (256)^3 + IP2 * (256)^2 + IP3 * (256)^1 + IP4 * (256)^0 */ String[] ipArray = ip.split("\\."); long result = 0; for (int index = 0; index < ipArray.length; index++) { result += Integer.parseInt(ipArray[index]) *.. 2020. 8. 6. [JavaScript] Google 사이트번역 API 사용법 Google의 사이트 번역 기능을 페이지에 삽입하는 방법을 알아보겠습니다. 기존 사용법 기존에 사용하던 API 키를 발급하여 사이트 번역을 하던 방식(여기)은 더 이상 지원되지 않습니다. 그렇다고 이런 편리한 기능을 안 쓰기는 아쉬우니 다른 방법으로 접근하여 보겠습니다. 다른 사용법 위의 방법과 동일한 결과물을 볼 수 있는 다른 방법입니다. 위의 소스를 통해 아래와 같은 결과물을 볼 수 있습니다. 옵션 조절을 통해 디자인 변경 및 표시할 언어, 페이지 기본 언어 등을 선택해 줄 수 있습니다. 언어(ISO 639) 위의 API에서 언어 코드를 많이 사용하게 되는데, 이때 참고할 만한 위키백과 링크입니다. ISO 639 코드 목록과 해당 국가의 언어 부호를 정보로 사용하였습니다. 2020. 8. 5. [JAVA] 내부 클래스가 컴파일되면? 지난 포스트에서 작성했던 소스에 내부 클래스로 구현하였던 인증 세션 부분이 컴파일했을 때 어떤 식으로 변경되는지에 대하여 기록하려 합니다. 자동 배포 환경이 구축되어있지 않은 상황에서 바이트 코드가 누락되어 동작오류가 발생하였습니다. JAVA Compile 우선 JAVA의 컴파일에 관하여 간략히 기록하겠습니다. JAVA의 모토인 Write once, run everywhere(한번 작성, 어디서나 실행)에 따라 자바 소스는 JVM위에서 동작 가능한 상태인 Byte Code로 컴파일됩니다. 이때 Class 내부에 작성한 내부 클래스는 어떤 식으로 컴파일될까요? Inner Class의 Byte Code 결과는 따로 컴파일된다 였습니다. 예제와 디컴파일한 Byte Code를 살펴보겠습니다. // OuterCl.. 2020. 7. 8. [JAVA] SMTP 발송(feat.Naver) Java언어와 SMTP를 이용하여 메일을 발송하는 예제입니다. 네이버 메일 설정 1. 내 메일함 설정으로 들어갑니다. 2. POP3/IMAP 설정으로 들어갑니다. 3. IMAP/SMTP 설정으로 들어갑니다. 4. IMAP/SMTP 사용을 사용함으로 변경합니다. 5. 변경한 설정을 적용합니다. 6. SMTP 요청을 전송할 정보임으로 확인해주세요 pom.xml org.simplejavamail simple-java-mail 6.0.4 저장소에서 원하시는 버전의 의존성 패키지를 선택해서 프로젝트에 불러와주세요. 소스 public class MailUtil { /** 메일 HOST **/ private static final String HOST = "smtp.naver.com"; /** 메일 PORT **/ .. 2020. 6. 30. 이전 1 2 3 4 5 6 7 8 다음