/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fejler database
Fra : Mads Brinch


Dato : 31-05-11 08:14


Hej jeg har et lille problem med at jeg skal have hentet noget
data ud fra en database og den melder tilbage med fejlen

Microsoft VBScript compilation error '800a03fd'

Expected 'Case'

/site/lbwiki/lbwikis.asp, line 80

Select * From lbtblwik

Min kode for at hente dataene ser sådan her ud



<%
' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../admin/db/db.mdb")
Conn.Open DSN

Select * From lbtblwik
Order by H1
Set rs = Conn.Execute(strSQL)

Do
' H1
strH1 = rs("H1")

' lav et link til lbwikis.asp
strLink = "<a href='../site/lbwiki/lbwikis.asp?id=" & rs("Id")
& "&pla=" & rs("H1") & "'>" & strH1 & "</a>"

' Liste med links
Response.Write "<li>" & strLink & "</li>"

rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>

Den skulle gerne kunne sætte menupunkterne op for tabellen H1 så
den linker til siden med det der står i infotabellen i databasen.

ved ikke lige hvor det går galt, og håber det giver mening hvad
problemet er.

på forhånd tak

Mvh Mads

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Mads Brinch (31-05-2011)
Kommentar
Fra : Mads Brinch


Dato : 31-05-11 09:53


hej fandt fejlen der skulle stå

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/admin/db/db.mdb")
Conn.Open DSN

strSQL = "Select * From lbtblwik Order by H1"
Set rs = Conn.Execute(strSQL)

Do
' H1
strH1 = rs("H1")

' lav et link til lbwikis.asp
strLink = "<a href='../site/lbwiki/lbwikis.asp?id=" & rs("Id")
& "&pla=" & rs("H1") & "'>" & strH1 & "</a>"

' Liste med links
Response.Write "<li>" & strLink & "</li>"

rs.MoveNext
Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>


men der kommer et nyt problem frem på den nye side som siger


Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters.
Expected 1.


den virker på en anden side men ikke denne her og koden ser ens ud
for dem begge så hvorfor kommer fejlen så?
selve koden ser sådan her ud, ved ikke om der lige er andre
muligheder for at poste det frem, men den kommer med ovenstående
fejl.

<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/admin/db/db.mdb")
Conn.Open DSN

' Hent fra databasen afhængig af værdien id fra URL
strSQL = "Select * From lbwiki2 Where H1 = " &
Request.Querystring("pla")
Set rs = Conn.Execute(strSQL)%>    

<p>
<%=rs("Iwik")%>
</p>

<%Conn.Close
Set Conn = Nothing
%>

mvh Mads

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Leif Neland (01-06-2011)
Kommentar
Fra : Leif Neland


Dato : 01-06-11 00:09

Den 31-05-2011 10:52, Mads Brinch skrev:
>
> ' Hent fra databasen afhængig af værdien id fra URL
> strSQL = "Select * From lbwiki2 Where H1 = "&
> Request.Querystring("pla")

Den sædvanlige fejl...

Hvad tror du der sker, hvis man kalder
"http://dit.dom/site/lbwiki/lbwikis.asp?pla=-1 UNION Select * from
admin_users"

Parameterized queries er den sædvanlige løsning.


http://xkcd.com/327/

--
Bevar P2, luk P3, der er nok P3'er i forvejen.

Rune Jensen (03-06-2011)
Kommentar
Fra : Rune Jensen


Dato : 03-06-11 05:10

On 1 Jun., 01:09, Leif Neland <l...@neland.dk> wrote:
> Den 31-05-2011 10:52, Mads Brinch skrev:
>
>
>
> > ' Hent fra databasen afhængig af værdien id fra URL
> > strSQL = "Select * From lbwiki2 Where H1 = "&
> > Request.Querystring("pla")
>
> Den sædvanlige fejl...
>
> Hvad tror du der sker, hvis man kalder
> "http://dit.dom/site/lbwiki/lbwikis.asp?pla=-1UNION Select * from
> admin_users"
>
> Parameterized queries er den sædvanlige løsning.
>
> http://xkcd.com/327/

Så vidt jeg kan se, så er Mads' kode sårbar overfor både SQL-injection
og XSS-attacks. Det er to af de suverænt mest brugte attacks-former.
F.eks.:
http://www.version2.dk/artikel/19325-sony-hacket-igen-n-million-passwords-er-stjaalet

SQL-injection kan undgås med parameterized queries, som Leif skriver.
XSS via brugerdefineret injected HTML kan undgås ved, at man encoder
allle data fra DBen, når det bruges direkte i HTMLen.

Man kan HTMLEncode i ASP, men kun 8859, ikke UTF-8- Så hvis du bruger
UTF-8, må du lave din egen function til det:

Function HTMLEnc ( StringIn)
HTMLEnc = Replace( Replace( Replace( Replace( StringIn, "<",
"&lt;"), ">", "&gt;"), "&", "&amp;"), chr( 34), "&quot;")
End Function


MVH
Rune Jensen

Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407871
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste