mySQL escape 처리

윤재·2021년 10월 15일

겪은 에러.

프론트에서 넘겨주는 이미지의 url이 DB에 이상하게 들어오는 문제가 생겼다.

분명 mongoDB로 작업했을 때는 이상이 없었는데 mySQL로 마이그레이션 하니 일어나서 mySQL문제라는 것을 알았다.

image에 이미지 주소만 받아오는데 왜 다른 정보가 섞여있을까?

콘솔에 찍어보면 분명 잘 뜨던 url이 왜 db에는 이상하게 들어갈까?

여러번 다른 이미지로 시도한 끝에 모든 url 저장에서의 공통점을 발견했다.

아래 url의 "?alt=" 부분이 다른 정보로 오염이 되길래 쿼리스트링의 개입이라고 생각하여

쿼리문 사용에 escape 처리를 하니 해결이 되었다.

escape 처리를 하는 이유

사용자가 의도적으로 악의가 담긴 쿼리를 날려 내 db에 정보를 탈취하거나, 손상을 주는 sql injection을 막기위해 사용된다.

{
postId: 7,
title: "22년형 신제품런칭! 아이닉 듀얼 무선 미니 가습기 IMH1",
nickname: "코드공주",
spec: "500mL, 3,600mAh 배터리, USB-C 충전",
descr: "무선 가습기의 자유로움을 느껴보세요.",
image: "https://firebasestorage.googleapis.com/v0/b/hanghae99-week4-mini-project.appspot.com/o/images%2F22%EB%85%84%ED%98%95%20%EC%8B%A0%EC%A0%9C%ED%92%88%EB%9F%B0%EC%B9%AD!%20%EC%95%84%EC%9D%B4%EB%8B%89%20%EB%93%80%EC%96%BC%20%EB%AC%B4%EC%84%A0%20%EB%AF%B8%EB%8B%88%20%EA%B0%80%EC%8A%B5%EA%B8%B0%20IMH1_1634213263044?alt=media&token=6a36d0c5-ec5d-4c67-bc09-1cefb5d3a9ca",
place: 2
},

결과는 성공 !@!@!

profile
안 되면 될 때까지

0개의 댓글