mySQL escape 처리

윤재·2021년 10월 15일
0

겪은 에러.

프론트에서 넘겨주는 이미지의 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개의 댓글