Avatar billede andersasp Nybegynder
28. november 2006 - 10:52 Der er 3 kommentarer og
1 løsning

beskyt mod SQL Injections

Hejsa,

Jeg er lige blevet informeret om at jeg er i fare for SQL injections. Og derfor vil jeg meget gerne få dette rettet. Jeg havde dog aldrig hørt om dette før og vil derfor høre hvad jeg kan gøre for at fixe dette?

Således åbner jeg mine data:

Databasen åbens således:
----------------------------------------------
<%
MM_webdatabase_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\web\site\database\webdatabase.mdb"
%>

Således åber jeg enkelte tabeller:
-----------------------------------------------
<!--#include file="../Connections/webdatabase.asp" -->
<%
set finduniquepage = Connmainpages.Execute("SELECT * FROM thepages WHERE Pmainhtml LIKE '%"& request.form("search") &"%' order by Pmenu ASC")
%>

------------------------------

Jeg har fundet følgende artikel som skulle være rigtig god, men hvordan får jeg den omskrevet til min fremgangmåde?

http://activedeveloper.dk/artikler/default.asp?articleid=370

Dim loConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Database\myDatabase.mdb;Mode=Share Deny None")
Dim lsSQL As String = "SELECT EmployeeID FROM Employees WHERE FirstName = @FirstName AND LastName = @LastName"
Dim loCommand As New OleDbCommand(lsSQL, loConnection)
Dim loFirstNameParm As OleDbParameter = New OleDbParameter("@FirstName", OleDbType.VarChar)
With loFirstNameParm
  .Direction = ParameterDirection.Input
  .Value = txtFirstName.Text.Trim
End With
Dim loLastNameParm As OleDbParameter = New OleDbParameter("@LastName", OleDbType.VarChar)

With loLastNameParm
  .Direction = ParameterDirection.Input
  .Value = txtLastName.Text.Trim
End With
With loCommand
  .Parameters.Add(loFirstNameParm)
  .Parameters.Add(loLastNameParm)
End With
loConnection.Open()
Dim loDataReader As OleDbDataReader = loCommand.ExecuteReader()
'Anvend DataReader
loDataReader.Close()
loConnection.Close()


På forhånd tak
Avatar billede keysersoze Ekspert
28. november 2006 - 11:05 #1
husk på at der er forskel på .NET og ASP :)

Tror du skal læse denne i stedet; http://activedeveloper.dk/artikler/default.asp?articleid=55 eller evt http://activedeveloper.dk/artikler/default.asp?articleid=180
Avatar billede andersasp Nybegynder
28. november 2006 - 11:54 #2
Ok super,

Så hvis jeg erstatter alle " tegn - vil jeg så være sikret?
Avatar billede keysersoze Ekspert
28. november 2006 - 12:16 #3
det er ikke " men derimod ' der er "problemet". Jeg er ikke hacker så hvor godt sikret man er tør jeg ikke sige - men er ' problemet løst er i hvert fald muligheden sql-injections væk.
Avatar billede andersasp Nybegynder
28. november 2006 - 12:34 #4
Ok tusinde tak for hjælpen, lidt skræmmende at man selv skal gøre dette selvom det er enkelt. Jeg har alligevel lavet mange login systemer og request.forms - hvor jeg aldrig har tænkt over denne sikkerhedsbrist..

Men man bliver jo klogere hele tiden :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester