29. oktober 2015 - 21:56Der er
13 kommentarer og 1 løsning
SQL sikkerhed
Jeg har et site som er ændret fra MS access database til MS SQL, men jeg oplever at nogle af felterne i database er blevet hacked. Det er felter med typen nvarchar(MAX) er har været ramt. Hvad har jeg overset?
keysersoze, den første del af artiklen har jeg fået styr på, men den sidste del med SQL kald har jeg ikke helt fat i, dette er et af mine SQL kald:
find = Request.Form("find")
sql = "SELECT * FROM [Medarbejder] WHERE Navn LIKE '%" & find & "%' OR Afdeling LIKE '%" & find & "%' OR CPR LIKE '%" & find & "%' OR MedarbejderNr LIKE '%" & find & "%' ORDER by Navn"
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Application( "SQLPath" )
Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sql, conn, 3,3
Hvordan beskytter jeg så mit SQL kald mod SQL injection?
find = Request.Form("find")
sql = "SELECT * FROM [Medarbejder] WHERE Navn LIKE '%" & find & "%' OR Afdeling LIKE '%" & find & "%' OR CPR LIKE '%" & find & "%' OR MedarbejderNr LIKE '%" & find & "%' ORDER by Navn"
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open Application( "SQLPath" )
Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open sql, conn, 3,3
Jeg vil gætte på at du benytte LIKE og ikke det du lige skrev - det vil i hvert fald ikke virke efter hensigten. Bortset fra det er der ingen syntaksmæssig forskel i forhold til parameters på at benytte LIKE og =. Fx;
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.