נשלח בתאריך: 07 June 2007 בשעה 19:10 | | IP רשוּם
|
|
|
|
תראו, אממ בניתי אתר בעזרת SQL ואבטחתי את האתר בעזרת החלפת תווים - החלפת סימן הגרש בשני גרשים וגרשיים בשני גרשיים.
השאלה שלי, האם ניתן לפרוץ לי לאתר בעזרת SQL injection?
אם כן, איך? ואיך אני יכולה למנוע את זה?
לכדילקמן הקוד:
<% dim sUserName, sPassword Set rsp=Server.CreateObject ("Adodb.recordset") set conn=Server.CreateObject ("ADODB.CONNECTION") CONN.Open gDSN sUserName = Request("Uname") sPassword = Request("Pws") function fSQLSafe(sText) if not isnull(sText) then sText = Server.HTMLEncode(sText) sText = replace(sText, "", "") sText = replace(sText, "'", "''") fSQLSafe = sText end if end function SQL="Select SecurityLevel from users where UserName='"&fSQLSafe(sUserName)&"' and Pwd='"&fSQLSafe(sPassword)&"'" 'Response.Write sql rsp.Open SQL,CONN,3,3 if rsp.EOF then Response.Redirect "login.asp?check=false" '***************** WebSite Size *********************** Dim PHYSICAL_PATH, sFOLDER_NAME, DB_NAME Dim nSIZE_LIMIT, nWebSize,nDbSize, nTotalSize Dim sWebSize, sEmailTo, sBody Dim fso, f, rDbSize, rConn nSIZE_LIMIT = gWEB_SIZE_LIMIT DB_NAME = gDB_NAME PHYSICAL_PATH = Request.ServerVariables ("APPL_PHYSICAL_PATH") set rConn = Server.CreateObject ("ADODB.CONNECTION") Set rDbSize = Server.CreateObject ("Adodb.recordset") Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder(PHYSICAL_PATH) rConn.Open gDSN rDbSize.Open "sp_helpdb "& DB_NAME &"", rConn if not rDbSize.EOF then nDbSize = rDbSize("db_size") nDbSize = cint (left (nDbSize,len(nDbSize)-2)) else nDbSize = 0 end if sFOLDER_NAME = UCase(f.Name) nWebSize = Round(f.size/1000000 ,2) nTotalSize = (nWebSize + nDbSize) * gTOTAL_SIZE_FACTOR if nSIZE_LIMIT < nWebSize then Response.Redirect "error.asp?err=1" '********************************************************** Session ("SecurityLevel")=rsp("SecurityLevel") rsp.Close set rsp=nothing0onse.Redirect "../AdminMain.asp" %>
|