mariadb LIKE 파라미터 전달

이승훈·2024년 10월 22일

1. 잘못된 코드

const str = 'lee';
const sql = 'SELECT * FROM user WHERE name LIKE "%?%";';
const params = [str];

플레이스홀더(?)가 따옴표 안에 있기 때문에 플레이스홀더가 아닌, 물음표 문자로 인식됩니다.

2. 올바른 코드

const str = 'lee';
const sql = 'SELECT * FROM user WHERE name LIKE ?;';
const params = [`%${str}%`];

3. 작동하지만 안전하지 않은 코드

const str = 'lee';
const sql = `SELECT * FROM user WHERE name LIKE "%${str}%";`;

만약 쿼리 문에 값을 직접 넣는 방식으로 처리하게 되면, 악의적인 사용자가 SQL 인젝션 공격을 시도할 수 있습니다.

profile
안녕하세요!

0개의 댓글