MapleStory Finger Point
LIKE Wildcard 검색을 막아보자(MySQL, MyBatis)
·
SPRING
크리스마스 기념으로 글을 발행하려고 한다. 다들 크리스마스라고 어디 나가지말고 집에서 개발 공부를 해보자!! (경험치 2배 이벤트) 이전 글에서 SQL Injection에 대해 자세하게 알아보았다. SQL Injection (MyBatis, SQL LIKE 절)회사에서 프로젝트를 진행하면서 SQL Injection 이라는 공격에 처음으로 당해보았다.다행히도 아직 오픈 전이라 십년감수했다.. ^ 3^ 그래서 이번 주제는 SQL Injection은 뭔지? 그리고 MyBatis, 쿼리 문에mjoo1106.tistory.com다양한 공격 방법 중, 실제 프로젝트에 적용한 LIKE wildcard 공격을 막을 수 있는 방법을 소개하고자 한다.하지만, 이전 글을 보지 않고 바로 해당 게시물에 진입한 독자들도 있으니..
SQL Injection (MyBatis, SQL LIKE 절)
·
ETC
회사에서 프로젝트를 진행하면서 SQL Injection 이라는 공격에 처음으로 당해보았다.다행히도 아직 오픈 전이라 십년감수했다.. ^ 3^ 그래서 이번 주제는 SQL Injection은 뭔지? 그리고 MyBatis, 쿼리 문에서 발생할 수 있는 Injection 사례를 알아보고 해결방안을 제시하려고 한다. SQL Injection? SQL Injection하면 엄청나게 유명한 짤이 있다.이 만화 컷 하나로 Injection의 모든 것을 이해할 수 있다.요 만화는 대충 이렇다. 어머니가 사랑스러운 아들 이름을 Robert'); DROP TABLE Students;-- 라고 지었다. 학교 측에서는 신입생의 이름을 바탕으로 Students Table에 추가하려고 한다. 1INSERT INTO Students..
[MyBatis] Loop vs Subquery vs Inner Join
·
SPRING
요즘 회사 프로젝트 때문에 엄청 바쁜 하루를 보내고 있다. 지금 하는 프로젝트를 간략하게 설명하자면, PHP로 되어있는 AS-IS를 Java / Spring Boot + Vue typescript 로 마이그레이션 하는 작업을 하고 있다. 애니웨이, 이전 코드(PHP)를 그대로 옮기다 이상한 점들을 발견하게 되었고, 이를 어떻게 개선하면 좋을지 고민했던 내용과 어떻게 수정했는지 이번 게시물에 담고자 한다.문제 상황 1. 특정 조건에 의하여 product_id를 Select 해온다.SELECT product_id FROM shipping_product WHERE owner_id IN (1,2,3,4 ...)2. 1번의 결과 값을 List에 담는다.3. List의 길이가 만 이상이면 500개 씩 n개의 ar..
MyBatis에서 Helper 클래스 적용하기 (StringUtils, CollectionUtils...)
·
SPRING
오늘은 회사 프로젝트를 진행하면서 생긴 이슈와 이를 해결하기 위한 일종의 회고를 써보려고 한다. SI 회사에서 업무를 진행하다보니, MyBatis를 좀 많이 쓰는 것 같다. 일단, 프로젝트를 부탁하는 곳에서 JPA 보다 좀 더 직관적으로 쿼리문을 살펴볼 수 있는 MyBatis를 선호하는 경향이 있는 것 같다. 그래서 필자는 회사 경험에서 JPA를 써본적은 없고 MyBatis만 써보았다. 그러다보니 MyBatis에서 좀 더 효율적으로 코드를 작성할 수 있는 방법을 많이 찾게 되었다. 이번 글은 단순 호기심에서 해결 방안까지 도출한 경험을 작성하려고 한다! 꽤 유용한 내용도 있으니 재미있게 이 글을 봐주셨으면 좋겠다. (알쓸신잡 느낌 ㅎ)  동적 쿼리문에서 StringUtils.hasText()를 사용할 수..
[Spring] MyBatis를 활용한 Login 구현 - 2
·
SPRING
https://mjoo1106.tistory.com/entry/Spring-MyBatis%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-Login-%EA%B5%AC%ED%98%84-1 [Spring] MyBatis를 활용한 Login 구현 - 1 앞시간에 REST API를 맛만보았다. 원래 프로그래밍을 가장 처음하면 Hello World를 출력하는 것으로 시작한다. 그렇다면 웹에서 시작은 무엇일까? 바로 로그인이다. 이것도 매우 간단하기 때문에 후 mjoo1106.tistory.com 지난번에 mysql 설치를 진행했고 login table을 하나 만들었다. 이를 mybatis를 사용하여 불러와 로그인 페이지를 직접 구현해보고자 한다. login page login page는 진짜 간..
[Spring] MyBatis를 활용한 Login 구현 - 1
·
SPRING
앞시간에 REST API를 맛만보았다. 원래 프로그래밍을 가장 처음하면 Hello World를 출력하는 것으로 시작한다. 그렇다면 웹에서 시작은 무엇일까? 바로 로그인이다. 이것도 매우 간단하기 때문에 후딱하고 다음 단계로 넘어가야겠다. 시작하기 앞서 DB를 활용하기 위해 사용하는 MyBatis와 JPA에 대해 소개하고자 한다. MyBatis vs JPA(Java Persistence API) 인프런 강의나 최근 자료들을 보면 MyBatis를 사용하지말고 JPA를 사용하라는 것을 많이 봤을 것이다. 실제로 JPA를 사용하는 비율이 압도적이다. MyBatis는 SQL Mapper의 종류 중 하나이고 JPA는 OBM 기술로 분류된다. 그렇다면 OBM이 뭐길래 사람들이 열광을 하는 것일까? ORM(Object..
📌 공지사항

1. 광고 댓글 자제 부탁드립니다😭😭

2. 업무 중에는 질문 답변이 늦을 수 있습니다!

3. 초보자라 잘못된 부분이 많습니다
     많이 알려주세요😊

4. 이 블로그가 성공하더라도 광고로 수익 창출
     하지 않겠습니다🫡


📧 mjoo1106@naver.com