28. april 2005 - 18:39Der er
13 kommentarer og 2 løsninger
to parametre i SELECT på samme WHERE
Hey E
IIS 5.0/ASP/IE
Hvordan sætter jeg to strings ind i en WHERE?
esk = Request.QueryString("esk")
strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = '" & esk & "' and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
Så vidt jeg kan forstå, vil du hente de to værdier ikke?
Prøv med:
strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed IN (" & esk & ") and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Operatoren In er brugt uden () i forespørgselsudtrykket "MOC_enhed IN = (ESK727) and MOC_sortering = '1'". /fsnskp/RT-SRS/visstatus.asp, line 53
strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed IN = (" & skp & ") and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort
... der mangler ikke meget, hvad kan det mon være?
strSQL: strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = '" & esk & "' and MOC_sortering = '" & statusQ & "' order by " & sOrderBy & " " & sSort
udskrift: select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr where MOC_enhed = 'ESK730,ESK727' and MOC_sortering = '1' order by MOC_stelnr ASC
hvor: MOC_enhed = esk MOC_sortering = statusQ
både esk og statusQ kommer fra Request.Querystring's
kender ikke til injektion. Hvorfor er det usikkert at bruge url?
denne faste SQL fra ACCESS virker: strSQL = "select * from bem right join fly_status on bem.Bstel = fly_status.MOC_stelnr WHERE (((fly_status.MOC_enhed)='ESK730') AND ((fly_status.MOC_sortering)='1')) OR (((fly_status.MOC_enhed)='ESK727') AND ((fly_status.MOC_sortering)='1'))"
sql injection er når en misbruger din sql.. hvis det er muligt at indtaste ' i din url så opfattes det i din kode som sql. Derved kan man direkte fra url´en ændre din sql sætning og fx skrive noget med 'Or Drop Table' ... hvor efter hele din tabel slettes :o( Så på alle dine request.querystring("felt") ... bør du lave om til replace(request.querystring("felt"),"'","''") Så udskifter den hvis der er et ' med to '' ...derved kan det ikke misbruges Blot for din egen sikkerhed :o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.