"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > SQL의 매개 변수화 된 쿼리는 SQL 주입 공격을 어떻게 방지합니까?

SQL의 매개 변수화 된 쿼리는 SQL 주입 공격을 어떻게 방지합니까?

2025-02-06에 게시되었습니다
검색:270

How Do Parameterized Queries in SQL Prevent SQL Injection Attacks?

SQL 매개 변수화 된 쿼리 및 물음표

]

SQL 문서를 찾을 때 쿼리에서 물음표 (?)가 발생할 수 있습니다. 이 자리 표시자는 매개 변수화 된 쿼리를 나타내며 프로그램에서 동적 SQL을 실행하는 데 널리 사용됩니다.

매개 변수화 된 쿼리에는 많은 장점이 있습니다. 매개 변수 값을 쿼리 자체에서 분리하여 코드를 단순화하여보다 효율적이고 유연하게 만듭니다. 또한 SQL 주입 공격을 방지하여 보안을 향상시킵니다.

예를 들어, 의사 코드 예제 :

ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = 7")
result = cmd.Execute()
로 다시 작성할 수 있습니다.

ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = ?")
cmd.Parameters.Add(7)
result = cmd.Execute()
string s = getStudentName () cmd.commandText = "select *에서 (name = ''s" ') " cmd.execute ()

string s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE (name = '"   s   "')"
cmd.Execute()
s = getStudentName () cmd.commandText = "select *에서 name =?" cmd.parameters.add (s) cmd.execute ()

s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE name = ?"
cmd.Parameters.Add(s)
cmd.Execute()

cmd.text = "Tablea에서 Thinga를 선택하십시오. cmd.parameters.addwithValue ( "@varname", 7) 결과 = cmd.execute ()

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3