3초기억력

Classic asp SQL Injection 본문

플밍_ASP

Classic asp SQL Injection

잠수콩 2024. 8. 22. 10:37

Classic ASP에서 SQL 인젝션을 방지하는 더 안전한 방법 중 하나는 매개변수화된 쿼리를 사용하는 것입니다.

매개변수화된 쿼리는 ADO(ActiveX Data Objects)를 통해 수행할 수 있으며, 이를 사용하면 SQL 인젝션 공격을 효과적으로 방지할 수 있습니다.

다음은 Classic ASP에서 ADO를 사용하여 매개변수화된 쿼리를 작성하는 방법입니다:

<%
' 데이터베이스 연결 설정
Dim conn, cmd, rs, sqlQuery
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB;Data Source=your_server_name;Initial Catalog=your_database_name;User ID=your_username;Password=your_password;"

' SQL 쿼리와 매개변수 정의
sqlQuery = "SELECT * FROM Users WHERE Username = ? AND Password = ?"

' Command 객체 생성 및 설정
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = sqlQuery
cmd.CommandType = adCmdText

' 매개변수 추가
cmd.Parameters.Append cmd.CreateParameter("@Username", adVarChar, adParamInput, 50, Request("username"))
cmd.Parameters.Append cmd.CreateParameter("@Password", adVarChar, adParamInput, 50, Request("password"))

' 쿼리 실행 및 결과 처리
Set rs = cmd.Execute()

If Not rs.EOF Then
    ' 사용자 인증 성공
    Response.Write "Welcome, " & rs("Username")
Else
    ' 사용자 인증 실패
    Response.Write "Invalid username or password."
End If

' 자원 해제
rs.Close
Set rs = Nothing
Set cmd = Nothing
conn.Close
Set conn = Nothing
%>​









출처 : 나

Comments