jmeMedlem sedan maj 20012 237 inlägg Bättre är nog att skydda SQL-frågorna med s.k. bound parameters. Se mer på http://blogs.technet.com/b/neilcar/archive/2008/05/21/sql-injection-mitigation-using-parameterized-queries.aspx
Detta ger skydd på ett mer övergripande sätt. T ex din kod skyddar bara då du med säkerhet vet att värdet skall vara ett heltal. Om du har nånstans i koden en SQL-fråga som inkluderara text-värden från användaren så fungerar inte samma skydd.
snowcatMedlem sedan feb. 2007220 inlägg ok då är jag på rätt väg.
Det jag gör nu är att försöka få bort liknande felmeddelanden:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[MySQL][ODBC 3.51 Driver][mysqld-5.0.45-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Vilket dyker upp när man skriver ett ' efter följande länk:
http://historiesajten.se/krigsinfo.asp?id=5
Alltså gömma dessa fula meddelanden. Har suttit hela dagen nu och försökt hitta hur man gör. Men det går trögt minst sagt. :-(
måste väl bli något med att om man skriver in ett ' så redirect kanske, eller något liknande..? Svårt det här!
jme= jag har bara heltal, inga användare kan heller skriva i något. Min sida är bara en sida där man läser, inte aktivt gör något.
jmeMedlem sedan maj 20012 237 inlägg Jag har tyvärr ingen erfarenhet av classic asp så jag kan inte hjälpa dig där mer än vad farbror google säger :)
Jag gissar på att man kan stänga av visningen av felmeddelanden med att konfigurera antingen i ditt projekt eller i IIS (webb-servern).
Hittar du det så se dock till att du har tillgång till dessa felmeddelanden! :)
Inte är det bra heller att du missar all fel och får det ännu svårare att fixa dem.
Om du använder koden du skrev ovan borde du inte få det där felmeddelandet. Om någon skriver 1' så kommer du hämta id=1 jue :O
snowcatMedlem sedan feb. 2007220 inlägg testade några sidor där jag har
http://www.historiesajten.se/gravplats.asp?bokstav=H
och sätter man ett ' efter där blir det fel.
snowcatMedlem sedan feb. 2007220 inlägg nån som har någon idé om hur man gör följande till att gälla bokstäver istället?
qid = Request.QueryString("id")
If IsNumeric(qid)= false then
qid = 1
End If
Står helt still och har sökt halva dagen efter svaret..
Så om man har typ .asp?bokstav=M att det inte blir fel om man skriver
.asp?bokstav=M'
jag hade gjort ett regex test för att se att Request.QueryString("bokstav") är en bokstav endast och bara a-zåäö:
Function isCharacter(value)
Dim r : Set r = New RegExp
r.Global = True
r.Pattern = "^[a-zåäö]$"
isCharacter = r.test(value)
set r = Nothing
End Function
Och kollat:
If isCharacter(Request.QueryString("bokstav") & "") = False Then
snowcatMedlem sedan feb. 2007220 inlägg Åhh jättetack! Skall försöka få in det på rätt ställe :)
OveRRidEMedlem sedan feb. 200112 078 inlägg Kolla på webbservern också (om det är en IIS, vilket det förmodligen är) så att inte PUT är tillåtet på webbsajten.