inflearn logo
강의

Course

Instructor

Real MySQL Season 1 - Part 1

Ep.11 Prepared Statement

ep11) Prepared Statement에서 질문

Resolved

145

dohyunlim

67 asked

0

안녕하세요 강사님

Client Side PreparedStatement 는 어떻게 SQL Injection을 막을 수 있다는게

? 에 set하기전에 application에서 체크해서 막는다는의미인가요?

mysql dbms/rdbms backend query-tuning mysql-query

Answer 2

0

sungucklee2062

도현님, 안녕하세요.

 

Client side preparedstatement에서도, 바이딩되는 값에 대해서 따옴표나 특수 문자들에 대해서 필요한경우, 자동으로 Escape 처리를 해주기 때문에 SQL Injection을 막을 수 있다는 의미입니다.

 

감사합니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.
dohyun_lim님께서 질문하신 “SQL Injection”과 “Client Side PreparedStatement”에 대한 이해를 함께 돕기 위해 간단히 설명드릴게요.

SQL Injection은 사용자가 입력한 데이터를 직접 SQL 쿼리에 삽입할 때, 악의적인 쿼리가 실행되어 데이터베이스 보안이 침해될 수 있는 공격 방법입니다. Prepared Statement는 이러한 SQL Injection을 방지하는 데 유리합니다. 그 이유는 SQL 쿼리를 먼저 컴파일하고 나중에 파라미터를 바인딩하기 때문에, 파라미터로 전달되는 값이 쿼리의 의도를 변경하지 않기 때문입니다.

Client Side PreparedStatement의 경우, 클라이언트 측에서 쿼리의 파라미터를 처리하고 서버로 전송합니다. 여기서 “SQL Injection을 막을 수 있다”는 의미는 파라미터를 미리 컴파일된 SQL 쿼리 내에 직접 삽입하지 않기 때문에, 파라미터에 대한 입력 검증이 철저히 수행될 수 있다는 것입니다. 즉, 파라미터로 전달된 값이 올바르게 처리되어 쿼리 문자열 자체를 변경하지 않도록 해줍니다.

이에 대해 상세한 설명은 아래 링크에서 확인하실 수 있습니다:

  1. Prepared Statement의 효율에 대한 이야기
  2. PreparedStatement의 메모리 사용에 관한 논의

위 답변들에서 Prepared Statement의 특징과 MySQL에서의 효율성에 대한 논의가 이루어지고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Commit 응답받기 전 네트워크 문제가 발생하면

1

64

1

14분44초에 쿼리 질문드립니다.

0

73

2

ep12. (2) LEFT JOIN 사용 방법 준수 - 오타 질문

0

75

2

ep.12 count(*) 질문

0

67

2

레코드 수정시 저장공간이 부족하면

0

81

2

복합 index 문의

0

87

2

강의

0

82

1

LEFT JOIN 시 드라이빙 테이블을 왜 ALL로 읽나요?

0

107

2

GAP 락에 대한 질문 드립니닷..!

0

195

1

ORDER BY가 필요한 이유

0

177

2

[오타 제보] 선행 데이터를 기반으로 한 데이터 분석

0

167

1

2강. VARCHAR(255) 저장되는 데이터의 길이 정보 질문

0

448

2

LIMIT, OFFSET을 사용하는 것과 범위 기반 방식의 성능 차이

0

319

2

MySQL Where절 내 조건의 순서

0

393

2

1강. delete marking된 데이터의 정리 주기는 어느 정도인가요?

0

238

2

Mysql table avg_row_length

0

144

1

12강 FULL GROUP BY

0

135

2

7)select for update 강의에서 질문

0

229

2

12강. LEFT JOIN 사용 방법 준수 5:42

0

240

2

6강. Top N 데이터 조회와 관련해 질문있습니다.

0

195

2

5강에서 사례로 언급하신 DETERMINISTIC 예제에 대해 질문있습니다.

0

145

1

deternmistic 질문

0

174

2

1강 CHAR타입에 대해 질문드립니다

0

230

1

EXPLAIN ANALYZE 수행 시 쿼리 실행 계획이 예상과 다릅니다.

0

252

1