webForumDet fria alternativet

Hur lägga in "order by"?

ASP

11 svar · 360 visningar · startad av Mira

Medlem sedan maj 2001966 inlägg
Frågan#1

Hur ska jag lägga in "order by" på rätt sätt?
Kan inte sånt här, så jag bara testade, men det godkänns inte...

Set Url=Conn.Execute("Select * From Url Where kat=" & Request.QueryString("catId") ORDER BY nr)

Medlem sedan maj 20012 237 inlägg
#2

Fungerar detta?

Set Url=Conn.Execute("Select * From Url Where kat=" & Request.QueryString("catId") & " ORDER BY nr")

Du verkar ha glömt fnuttarna runt ORDER BY nr samt &-tecknet

Medlem sedan maj 20012 237 inlägg
#3

Lite OT:

Jag gissar på att Request är ett http Request objekt.

Man bör aldrig placera text i en sql-sats utan att först kontrollera dess innehåll. Det finns en risk för en s k "sql injection" attack varvid en illsinnad person kan ange egna sql-satser som sedan exekveras - farligt.

Sök efter sql injection här på wf för mer info.

Medlem sedan maj 2001966 inlägg
#4

Jag är glad om jag får fnuttarna på rätt plats, så det du skriver om jme får bli i ett annat liv.

Vad innebär "farligt"?

Medlem sedan dec. 19996 721 inlägg
#5

Mira skrev:

Vad innebär "farligt"?

Att någon med enkelhet kan läsa ut hemlig information (t.ex. lösenord) från din databas, eller radera all information.

Medlem sedan maj 2001966 inlägg
#6

Ok.
I detta fall inte så farligt, eftersom det är ett personligt arkiv.
Klart tråkigt om dom raderar en massa, men jag skulle bli förvånad om nån får för sej att leka med just min lilla hemsida.

Tack för info iaf.

Medlem sedan jan. 20013 582 inlägg
#7

.....Men!

Är det så svårt att skriva:

Replace(Request.querystring("catId"), "'", "''")

.....och på så sätt förbättra säkerheten avsevärt?

Mvh
Henrik

Medlem sedan maj 20012 237 inlägg
#8

Om det finns nåt som heter PreparedStatement så bör man använda dessa.

Medlem sedan maj 2001966 inlägg
#9

devotion skrev:

.....och på så sätt förbättra säkerheten avsevärt?

Om du menar som detta:

Function Fixa(str)
  Fixa  = Replace(Trim(str),"'","''")
End function

...så är det isf redan fixat.
Men HUR skulle jag kunna veta att det var just sån kod som behövdes???
Sökte på det som föreslogs, men såg bara en drös med kod som jag inte förstod - inte var det så lite kod där iaf.

Har dock inte sett var funktionen används, så jag vet inte om det funkar som det ska - vart den ska kopplas, osv...

Medlem sedan jan. 20013 582 inlägg
#10

Där har du ju en fin funktion du kan använda!

Function Fixa(str)
  Fixa = Replace(Trim(str),"'","''")
End function

Och sedan det du vill skydda:

Fixa(Request.querystring("catId"))

Mer läsning:
http://www.webforum.nu/showthread.php?s=&postid=1037886#post1037886

mvh
Henrik

Medlem sedan maj 200010 687 inlägg
#11

devotion: Det där hjälper ju inte ett dugg. Eftersom att det är ett numeriskt värde så behöver man inte använda ' för att hoppa ut ur strängen för att blanda sig i SQLen.
Ahhh! Blir så less på folk med noll koll som kommer med uttalanden om hur man ska göra för att göra applikationen säker...

Medlem sedan jan. 20013 582 inlägg
#12

:r
Sorry tänkte inte på att det inte var en sträng det handlade om....

Mvh
Henrik

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)