목록분류 전체보기 (8)
ITSTEIN
spring gradle프로젝트를 debug하기위해서 intellij를 사용했지만 이클립스에서 하는 방법을 기록한다. 1) build.grale 수정. bootRun { jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005' } 2) gralde task에서 application bootRun실행. 3) 이클립스 debug configuration 추가. * Remote Java Application 더블클릭해서 추가. 4) 설정 후, debug 실행. ------------------------------------------------------------------------------------------..
spring mvc 웹서버에서 외부서버로 https 통신을 하여서, 데이터를 주고 받아야 할 일이 생겼다. 개발 완료후, 로컬 테스트 , TB테스트를 하고 상용 서버 테스트를 진행하던중 Connection reset에러가 발생하였다. 에러로그를 확인하였지만, 정확한 원인 파악아 안되어서 골머리를 앓던중 스택오버플로우에서 글을 발견하였다. 몇년전 나와 같은 문제로 고민하던 사람이 질문을 했는데. 수만은 해결방법과 원인에 대한 논쟁이 오가고 있었다. connection reset이 되는 이유는 여러가지가 있는듯하다. 서버 부하로 인한 connection timeout, 일시적인 네트워크 속도 문제, Client에서 연결을 끊는경우, 서버에 설정된 maxHttpHeaderBody옵션, 메모리 이슈...등.....
자바로 http통신을 시도하던중, ssl handshake 에러가 발생하였다. 통상 ssl hand shake exception은 ssl/tls의 버전이 맞지 않아서 발생하는 문제이다.구글 검색을 통해서, 금방 문제를 해결할수 있었다. ============== 에러로그 ==============javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) at sun.security.ssl.SSLSocketImpl.r..
Springframework와 mybatis의 연동은 많은 방법이 있다. 그중 SqlSessionTemplate, SqlSessionDaoSupport, MapperScanner 3가지 방식을 알아보겠다. 1. 기본 설정 (SqlSessionFactory) 2. SqlSessionTemplate 사용하기 @Repository public class UserCommonDAO { @Autowired private SqlSessionTemplate sqlSession; public void insertUser(UserVO user) { sqlSession.insert("UserDAO.insertUser", user); } } 3. SqlSessionDaoSupport 사용하기 - SqlDaoSupport는 S..
자바의 equals()와 hashCode()는 java.lang.Object의 메소드로서 자바의 모든 객체가 상속받아서 사용하고 있다. 메소드의 목적은 객체의 비교이다. 1. equals()equals()메소드는 객체의 내용을 비교하기 위한 메소드이다. equals의 영어풀이는 다음과 같다. equal(equals) 미국·영국 [|i:kwəl] 영국식 중요도 별점 2개 예문보기1. (수・양・가치 등이) 동일한 2. 동등한, 평등한 3. 감당할 수 있는 '수', '양', '가치'가 동일한, 동등한의 의미를 갖고 있는것과 같이, 객체의 내용이 동일한지 비교하는 것이 주 목적이다. 예를 들면 String, Map클래스의 equals()메소드가 대표적이 예이다. 1) String 문자열을 비교할때, == 연산자..
웹의 해킹 기술중 sql injection을 알아보겠다. 1. sql injection* 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 '코드 인젝션'의 한 기법이다.* 공격은 매우 쉽지만 파급력은 매우 큰 해킹* sql injection 취약점의 탐지 및 방어도 매우 쉽다. 2. 공격 예제* 로그인 기법- select * from user_info where id = '${id}' and password = '${pass}'- ${id} = test , ${pass} = ' or '1' = '1- ${id} = eggrok'; -- , ${pass} = ' or '1' = '1- ${id} = eggrok' or '1' = '1 , ${pass} = 12345 * 이메일 변경 및 새로운비..
웹 해킹에서 간단하면서도 자주 이용되는 XSS에 대해서 알아보겠다. 1. XSS (Cross Site Scripting)- 웹 상에서 많이 이용되는 해킹 방법- 해커가 공격 목표가 되는 사이트에 악성 스크립트를 넣어서 해킹 하는 기법- 악성 스크립트가 삽입되면, 일반 사용자가 사이트에 접속시 해당 스크립트가 실행되어, 사용자가 모르는 사이에 해킹을 위한 행동을 하게되거나, 쿠키나 세션토큰등 민감한 정보를 탈취한다. (세션토큰은 탈취해서 세션 하이재킹등의 공격에 이용될수 있다.) 2. XSS의 종류* Stored XSS- 해커는 데이터 베이스에 악의적인 스크립트를 저장하고, 사용자의 브라우저에서 해당 스크립트가 실행되어 공격- DB에 데이터를 저장할때, 스크립트등을 필터하지 않고 그대로 저장하는 경우.. ..
Java에서 DB connection을 맺을때, DBCP를 사용하는 방법이 있고, JNDI를 사용하는 방법이 있다. DBCP, JNDI 모두 기본적인 JDBC를 사용한다. 1. JDBC (Java DataBase Connectivity)- 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공한다.- 자바의 DB 컨넥셕의 기본이 됩니다. interface로서 각각의 DB벤더(oracle, mysql, sql server, maridb, postgresql ...)마다 jdbc 인터페이스를 구현한 드라이버를 제공함. 2. DBCP (DataBase Connction Pool)- 아파치에서 만든 컨넥션 풀 오픈소스 라이브러리- ..