본문 바로가기
반응형

분류 전체보기161

쿠키의 보안 취약점 출처사이트 : https://uoonleen.tistory.com/m/65 쿠키의 보안 취약점 1) XSS(Cross-Site Scripting) 공격 XSS 공격은 자바스크립트가 사용자의 컴퓨터에서 실행된다는 점을 이용한 공격입니다. 자바스크립트에서 "document.cookie"라는 명령어는 사이트에서 쿠키 값을 활용할 수 있게 하는 역할을 하지만 공격자들은 쿠키 값을 탈취하기 위해서 사용하기도 합니다. 2) 스니핑(Sniffing) 공격 스니핑이란 단어의 사전적 의미는 '코를 훌쩍이는, 킁킁거리며 냄새를 맡는' 입니다. 사전적 의미와 같이 스니핑 공격은 네트워크의 중간에서 남의 패킷 정보를 도청하는 해킹 유형의 하나입니다. 수동적 공격에 해당하며, 도청할 수 있도록 설치되는 도구를 스니퍼(Sniff.. 2022. 2. 18.
쿠키 사용하기. 출처사이트 : https://uoonleen.tistory.com/m/65 ■ 쿠키(Cookie)란? ───── ▶ 웹서버가 웹브라우저에게 보내는 데이터 중의 하나입니다. 웹브라우저는 웹서버로부터 받은 쿠키 데이터를 내부 메모리 또는 별도의 폴더에 저장합니다. 그리고 그 웹서버를 방문할 때마다 쿠키를 요청 헤더(Request Header)에 담아 다시 전달합니다. ▶ 쿠키 생성 - 쿠키의 이름은 'ISO-8859-1'이어야 합니다. 이 말은 한글이 안된다는 것이죠. - 쿠키의 값은 'ISO-8859-1' 문자열이어야 합니다. 만약 한글을 저장하고 싶다면? ▶ URL 인코딩을 하여 저장하면 됩니다. ───── 쿠키의 사용 I : 쿠키 객체 생성 import java.io.IOException; import.. 2022. 2. 18.
쿠키등록 ( 팝업창 하루동안 열지 않기 & 하루에 한번만 띄우기) 출처 : https://ktko.tistory.com/m/109 팝업창 하루동안 열지 않기 & 하루에 한번만 띄우기 구현하기 자바스크립트를 사용해 팝업창을 띄우는 것은 자바스크립트에서 제공하는 window객체를 사용하면 간단하게 만들 수 있습니다. 많은 사이트에서 사이트에서 제공하는 이벤트와 제품홍보를 위해 팝업창을 방문자들에게 수없이 띄우지만 방문자들은 사이트에 방문할 때마다 팝업 닫는 것이 상당히 귀찮다. 그래서 하루동안 팝업을 보지 않기 라는 기능을 제공하고 있습니다. 이 기능을 사용하려면 자바스크립트의 쿠키와 윈도우 객체의 open만 알아야 합니다. main.html 소스 설명 먼저 메인화면 진입 할 때 에서 openPopup 메서드를 실행하게 됩니다. onload()는 모든 콘텐츠(css, 스크.. 2022. 2. 18.
오라클 페이징 쿼리. ------------------------------------------------------------------------------------------------------------------------- ▣ 문제 : 페이징 쿼리가 느리다. ▣ 데이터 건수 : 1억건 ▣ 인덱스 : PK_TB_TABLE ( COL_01, COL_02 ) ------------------------------------------------------------------------------------------------------------------------- 그냥 페이징인데! 속도가 느리다. 페이징 방식은 많이 있다. 그중에 대용량 데이터에서 많이 사용하는 ROWNUM 방식으로 쿼리 했지만 결과가 느.. 2022. 2. 18.
자바단(서비스단)에서 직접 특정 웹사이트 URL호출 하기 출처사이트 : https://nine01223.tistory.com/m/256 HttpURLConnection을 이용해서 POST 호출을 하려면 다소 복잡한 과정이 필요하다. 하지만 다음과 같은 심플한 과정을 통해서(정형화된 과정을 통해) 쉽게 호출할 수 있다! 자주 사용하는 코드이므로 유용하게 사용할 수 있다. 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 32 33 34 35 36 37 38 39 import java.io.*; import java.net.*; import java.util.*; class Test { public static void main(String[] args) throw.. 2022. 2. 17.
webSocket 웹 채팅 만들기 출처사이트 : https://devmg.tistory.com/m/127 File > New > Spring Lagacy Project > Templates목록에서 맨 아레 Spring MVC Project 클릭 하고 생성 ※만약에 Spring Lagacy Project가 보이지 않는다면 마켓플레이스에서 STS를 입력후 STS3 Add-On 설치한다. org.springframework spring-websocket ${org.springframework-version} javax.websocket javax.websocket-api 1.1 기본 pom.xml에 2개의 의존성을 추가한다. 위 대로 디폴트 스프링mvc프로젝트를 생성하면 버전이 낮다. 그래서 웹소켓 인터페이스를 지원하는데 오류가 많이 났다 (.. 2022. 2. 17.
자바 static Map 사용과 초기화 출처사이트 : https://trudger.tistory.com/m/entry/static-map-%EC%82%AC%EC%9A%A9-%EA%B4%80%EB%A0%A8static-field-initialzation 맵핑정보를 static map 에 선언해 놓고 쓰고 싶다. 우선 static field를 선언했다. public class Test{ static private final Map mappingFileds = new HashMap(); } 초기화를 어떻게 할까?? 구글링 하니 몇가지 방법이 나왔다. 1. static initializer block private static final Map myMap; static { Map aMap = ....; aMap.put(1, "one"); aMap.p.. 2022. 2. 17.
WebtoB 에서 TLSv1.2 지원 확인하는 방법 출처사이트 : https://sarc.io/index.php/was/2026-webtob-tlsv1-2 1. 개요 2020년 상반기, 주요 브라우저의 TLSv1.2 미만 지원 종료 건 관련하여 많은 웹시스템들의 Openssl 버전 업그레이드 및 WEB서버의 업그레이드 등이 이루어지고 있는데요, Openssl을 사용하지 않는 WebtoB의 경우에는 WBSSL 이라는 모듈을 사용하기 때문에 WebtoB만 업그레이드 해주면 됩니다. WebtoB 몇 버전부터 TLSv1.2 프로토콜을 지원하는지와 TLSv1.2로만 통신하도록 설정하고 확인하는 방법에 대해 알아보겠습니다. :) 2. TLSv1.2 프로토콜 지원하는 WebtoB 버전 WebtoB 4.1.5.3 버전부터 TLSv1.2 프로토콜을 지원하기 시작했습니다... 2022. 2. 17.
xss 방지 Lucy-xss-servlet-filter 적용하기 웹 개발을 할 때 보안은 중요한 요소입니다. 오늘 포스팅할 내용은 웹 취약점 공격 방법의 일종 중 하나인 XSS를 방어하는 방법에 관한 것입니다. 테스트 환경 JDK 1.8 Spring 4.3.14 Tomcat 9.0 XSS(Cross Site Scripting) XSS는 웹 어플리케이션에 악의적으로 스크립트를 삽입해 공격하는 기법을 말한다. 만약 웹 어플리케이션에서 데이터를 서버로 저장할 때(게시판에 글을 쓴다던지. 회원 정보를 수정한다던지) 데이터를 검증하지 않거나 XSS에 대한 방어 대비가 없다면 스크립트가 포함된 데이터가 저장되어 유저로 하여금 원치 않는 스크립트를 실행시킬 수 있다. 이러한 방식의 위험성은 일반적으로 자바스크립트에서 발생하지만 VB 스크립트, Active X등과 같은 동적 데이터.. 2022. 2. 17.
xss 방지 출처사이트 : https://developer111.tistory.com/40 xss(croos site script)란?? 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다. XSS 공격 보안 방법 XSS 공격을 보안하려면 세가지 상황에 대해 모두 보안을 해주셔야 합니다. 첫번째, 또는 과 같은 html 태그에 스크립트 공격이 들어오는 경우 두번째, 태그에 스크립트 공격이 들어오는 경우 세번째, json 형식의 데이터 전송에 스크립트 공격을 하는 경우 네번째, 웹소켓에서 스크립트 공격이 들어오는 경우 첫번째와 두번째 상황은 방어하.. 2022. 2. 17.
암호와 종류 (양방향 / 단방향) 출처사이트 : https://galid1.tistory.com/339 단방향 암호화와 양방향 암호화 1. 단방향 암호화 - 평문을 암호문으로 암호화 하는것은 가능하지만 암호문을 평문으로 복호화하는 것은 불가능한 암호화 방법 이러한 암호화 방식이 필요가 없다고 생각할 수 있지만 복호화가 필요없는 경우의 암호화 방식이 더 유용한 경우가 있다 이러한 경우가 바로 "패스워드"이다 패스워드를 단방향 암호화 방식으로 저장하는 경우 패스워드DB가 털릴 경우에도 안전할 수 있다 또 패스워드를 검증할 때에는 사용자로부터 입력받은 암호를 똑같은 방식으로 암호화 하여 암호화된 패스워드 끼리 비교를하면 되기 때문이다 단방향 암호화 종류 - 암호학적 해시 함수가 이에 해당한다 1) MD5 - 현재는 안전하지 않으므로 사용하지 .. 2022. 2. 17.
log4j 파일별 특정 로그 제외하거나 특정 데이터만 쌓는 방법 출처사이트 : https://lemontia.tistory.com/440 log4j.xml 파일에 다음의 항목을 추가한다. 빨간색으로 그은 부분이 그것인데, 이렇게 설정해두면 Mapper에다 ==IGNORE_LOG== 를 넣으면 해당 쿼리에 대한 로그를 출력하지 않는다. 사용예) /* 테스트 ==IGNORE_LOG== */ select t1, t2 from test; 2022. 2. 17.
스프링 properties 읽어오기 추출사이트 : https://ktko.tistory.com/m/entry/Spring-properties-%EC%9D%BD%EC%96%B4%EC%98%A4%EA%B8%B0 properties 읽어오기(3가지) 1) PropertyPlaceholderConfigurer를 이용한 properties 파일 읽어오기 2) context:property-placeholder를 이용한 properties 파일 읽어오기 3) 와 Spring EL을 이용한 properties 파일 읽어오기 1) PropertyPlaceholderConfigurer를 이용한 properties 파일 읽어오기 프로퍼티를 읽어오기 위해 간단한 선행 작업으로 /WEB-INF안에 config 폴더를 생성 후 안에 config.prpoertie.. 2022. 2. 17.
이중화 서버에서 중복 로그인 방지 출처사이트 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=kyong94s&logNo=119737344 물리적으로 이중화되어 분리된 WAS 서버환경에서 로그인 세션을 관리(등록, 삭제)하는 방법은 세 가지로 정리할 수 있습니다. 데이터베이스 기반 로그인 세션관리 (중복로그인방지기능 구현가능) WAS에서 제공하는 세션서버나 Security Framework 기반 로그인 세션관리 SSO/EAM Agent-Server 기반 세션관리 위의 세 가지 세션관리방법에 대하여 상세하게 정리하도록 하겠습니다. 1. 데이터베이스 기반 로그인 세션관리 데이터베이스를 기반으로 로그인된 세션정보를 관리하면 물리적으로 분리된 시스템(WAS)간에 세션을 .. 2022. 2. 17.
HttpSessionListener 이용 중복 로그인 방지 추가 사이트 : https://lts0606.tistory.com/m/320 스프링 시큐리티를 사용하지 않고 단순히 세션값을 활용하여 중복 로그인을 방지하는 방법에 HttpSessionListener 인터페이스가 사용이 된다. 해당 인터페이스를 implements하면 세션이 생성되고 소멸되는 시점에 대해서 작업을 용이하게 할 수 있다. HttpSessionListener 인터페이스를 상속받아보면, 2개의 메소드가 오버라이딩 된다. 생성용 Created메소드, 소멸용 Destroyed 메소드 그러면 머리를 조금만써서.. 특정 기능에서 로그인 성공시 세션을 만들어주고나면 해당 세션을 특정값에 보관하고, 로그아웃이나 중복로그인 발생시 저장된 세션값을 제거해주도록 하면 될 것 같다. 첫번째로 위 HttpSess.. 2022. 2. 17.
스프링 세션 동작 원리 출처사이트 : https://thecodinglog.github.io/spring-session/2020/08/07/filter-chain.html Spring-Session을 사용하면 외부 저장 매체(mysql, Redis 등)를 이용해서 여러 서버의 Session을 쉽게 동기화 할 수 있습니다. 실제로 Session 동기화 기능이 있는 컨테이너를 사용하려면 막대한 비용이 들기도 하고 구성하기가 쉽지도 않습니다. 특정 컨테이너 기술에 의존하게 되는 것도 문제입니다. Tomcat 2개로 서비스를 운영하다가 제우스에 서비스를 추가로 올려서 사용할 수 없다는 의미입니다. Spring-Session의 또 다른 이점은 한 화면에서 여러 Session 쉽게 구성할 수 있도록 해줍니다. G-Mail 서비스를 보면 .. 2022. 2. 17.
세션 생성 및 제거. 출처 : https://devkingdom.tistory.com/m/9 간단하게 설명을 해보자면, ① 서버에 연결하고 서비스를 요청한다. 편하게 로그인 서비스라고 생각하자. ② 로그인 기능을 수행하는 메서드가 있으면 메서드 바디에서 setAttribute() 메서드를 호출한다. ③ 그러고 나면 해당 속성값이 Session 안에다가 저장이 된다. ④ 그 후 결과를 응답해준다. 이러면 로그인이 완료된거다. ⑤ 로그인 하고 난 뒤에 유저 수정 화면에 들어간다고 생각해보자. 유저 수정 서비스를 호출한다. ⑥ 수정 기능을 수행하는 메서드가 있으면 메서드 바디에서 getAttribute() 메서드를 호출한다. ⑦ 그러고 나면 해당 속성 값이 반환된다. ⑧ 이 값을 클라이언트에게 응답해주면 유저의 정보가 화면에 보여.. 2022. 2. 17.
JSP 웹사이트 개발 -. 컨트롤 과 뷰간에 데이터 주고 받기 - 스프링 - ${} - EL 표현식 문법과 사용 방법 ======================================= 개발 참고 추천 사이트 : https://www.w3schools.com/ https://ko.javascript.info/ ======================================= 1. request에 대한 결과값을 특정 주소로 결과 값을 보낼때.... 1-1. 컨트롤러 변수값 생성 및 보내기 @RequestMa...("") public String sSend(...... Model modle....) { --첨부할 일반변수 model.addAttribute("변수명" ,변수값(List,VO,Map,String.....)).. 2022. 2. 17.
JavaScript 키보드 이벤트 생성 출처 : https://itinerant.tistory.com/m/69 [JavaScript] 키보드 이벤트 ( 단축키/hotkey ) 생성하는 방법 ex) `Ctrl + Alt + c` 을 눌렀을 때 이벤트 생성 var isCtrl, isAlt; // ctrl. Alt 눌림 여부 확인 document.onkeyup = function(e) { if (e.which == 17) isCtrl = false; if (e.which == 18) isAlt = false; } document.onkeydown = function(e) { if (e.which == 17) isCtrl = true; if (e.which == 18) isAlt = true; console.log(e.which , isCtrl, i.. 2022. 2. 17.
jQuery 노드를 생성/추가/이동/삭제 하기 출처: https://ktko.tistory.com/entry/jQuery-노드를-생성추가삭제이동-하기 [KTKO 개발 블로그와 여행 일기] 설명을 위한 예제로 ul과 li태그를 사용하여 HTML 코드를 작성하였습니다. 실제 개발할 때는 ul, li태그뿐만아니라 다른 부분에서도 노드를 추가 생성할 수 있겠지만 간단한 설명을 위해 ul, li로 정리하겠습니다. 1 2 3 4 5 6 7 menu1 menu2 menu3 menu4 menu5 아래는 오늘 포스팅한 메서드의 간략 설명입니다. 분류 내용 jQuery DOM 핵심 프로퍼티 및 메서드 노드 생성 / 추가 노드 생성 $("DOM 문자열"); 첫 번째 자식 노드로 추가 $부모노드.prepend($추가노드) $추가노드.prependTo($부모노드) 마지막 .. 2022. 2. 17.
jquery each .prop .attr .css .val등 주요 함수 원본사이트 : https://bvc12.tistory.com/332 - each (배열) 자바스크립트의 for 문과 동일한 기능을 갖고 있습니다. 즉 반복문의 기능을 수행합니다. 제이쿼리 반복문인 each 는 2가지의 사용법을 지원합니다. 사용법은 다음과 같습니다. 사용방법 및 문법 $.each(object, function(index, item){ }); 또는 $(selector).each(function(index, item){ }) object : 객체 index : 반복문 횟수 item : 반복문에서 나온 값 예제 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 32 33 34 35 36 37 3.. 2022. 2. 17.
반응형