Auxiliary Memory
  • Auxiliary Memory
  • Recent Changes
  • Disclaimer
  • general
    • Homelab
      • Planning
      • Configuring RPi
      • Dockerize Unifi Controller
      • Moving Unifi Controller to Bare Metal RPi
    • Lifehack
      • Coding on iPad
      • Faster internet with Cloudflare WARP
  • lifelog
    • Links
    • Movies
    • Books
      • Reading Queue
    • Public Memos
      • 2020 Memo
    • Yearly Records
      • Records of 2020
      • Records of 2019
  • books
    • The Rust Programming Language
    • Lambda Calculus
    • SICP
    • Introduction To Algorithms
      • 1.1. 알고리즘의 역할
      • 1.2. 시작하기
    • Linux System Programming 2/E
      • 1. 핵심 개념 소개
  • Programming
    • Git
    • When to refactoring?
    • Microservices
    • Functional Programming
      • ADT
      • Functor and Monads
    • OS
      • CPU Modes
    • Debugging
      • objdump
    • DevOps
      • How our infrastructure organized
      • Optimize Dockerfile
    • Spring Framework
    • Web
      • OAuth
        • Sign in with Apple
    • SQL
      • Prepared Statement
    • Programming Languages
      • TypeScript
      • Python
        • GIL
      • Rust
      • F#
        • Dos & Don'ts
      • Go
      • JVM
        • JVM memory structure
        • JVM GC
        • Kotilin
        • Java
          • Why main method should be static
  • My Environment
    • My Macbook
    • My Keyboards
    • My PyCharm
    • My CLI
      • iTerm2
      • Dotfiles
        • Refactoring .zshrc
      • Useful Commands
Powered by GitBook
On this page
  • 개요
  • 참고문헌

Was this helpful?

  1. Programming
  2. SQL

Prepared Statement

PreviousSQLNextProgramming Languages

Last updated 5 years ago

Was this helpful?

개요

일반적으로 쿼리나 업데이트와 같은 SQL 문과 함께 사용되는 프리페어드 스테이트먼트는 템플릿의 형태를 취하며, 그 템플릿 안으로 특정한 상수값이 매 실행 때마다 대체된다.

SQL 인젝션 을 막을 수 있는 방법 중 하나이다. DBMS에 쿼리할때 일종의 프로그램인 쿼리에서 데이터를 분리함으로써 (SQL 인젝션의 근본적인 원인은 코드와 데이터가 분리되지 않는 것에 있음) DBMS가 실행 계획을 불필요하게 여러번 만들지 않고, 악의적인 사용자가 SQL 인젝션을 시도해도 해당 쿼리는 이미 실행 계획이 만들어져 있기 때문에 DBMS가 개발자의 의도와 다르게 SQL을 실행하는 일을 막을 수 있다

참고문헌

프리페어드 스테이트먼트 - Wikipedia
How can prepared statements protect from SQL injection attacks? - Stack Overflow
SQL인젝션 취약점, 쿼리바인딩, Prepared Statement