---
title: "Eventuellt säkerhetshål som jag inte tänkt på?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/120626-eventuellt-säkerhetshål-som-jag-inte-tänkt-på"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "medialabs"
published: "2005-01-20T17:45:19.000Z"
updated: "2006-10-08T16:48:21.000Z"
replies: 9
views: 587
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/120626-eventuellt-säkerhetshål-som-jag-inte-tänkt-på"
---

# Eventuellt säkerhetshål som jag inte tänkt på?

## #1 — medialabs, 2005-01-20T17:45Z

Hur ska jag gå tillväga för att förhindra att man ska kunna skriva in "elaka" tecken i mina adresser som går till en specifik nyhet...

<http://www.medialabs.se/public/nyhet.asp?id=37>

Nu kan man ju skriva in tecken som &, ' och lite annat efter siffror och på det sättet "förstöra" sidan. Hur ska jag gå tillväga för att koda bort detta säkerhetshål?

Permalänk: https://www.webforum.nu/p/120626

## #2 — @nders, 2005-01-20T17:51Z

Sök på *sql injection*. Du är inte först med undringen så att säga...

Permalänk: https://www.webforum.nu/p/1533520

## #3 — medialabs, 2005-01-20T17:54Z

Sql-injektion är jag väl medveten om och är flitig användare av sql-injektionsskydd. Men jag filtrera ju bara bort tecken '

jag behöver hjälp med att bara tillåta siffror..
Det jag vill göra nu är att spärra att man bara kan skriva siffror. efter nyhet.asp?id=

Permalänk: https://www.webforum.nu/p/1533521

## #4 — @nders, 2005-01-20T18:01Z

Gör en kontroll med IsNumeric, och typkonvertera till Long.

Permalänk: https://www.webforum.nu/p/1533527

## #5 — MickeA.com, 2006-10-07T17:13Z

Tjena
Drar upp en gammal tråd nu, men tycker att det är onödigt att skapa en ny tråd för mitt problem.
Jag kollar en sträng med isNumeric, men satsen returnerar true även fast strängen innehåller bokstäver.

I mitt formulär som jag har hämtas ett värde från en databas och läggs som värde i ett textfält.
Värdet jag pratar om är "575 kr".
När jag sedan postar formuläret, körs följande:

```
bet_sum = FixSQL(Request.Form("bet_sum"))
If isNumeric(bet_sum) Then Response.Write("Yeah") Else Response.Write("Noo") End If : Response.End
```

I MSDN's referens står det att isNumeric ska ge *false* om strängen innehåller bokstäver. Så är det alltså inte i mitt fall.

Har även kollat min postdata med VarType() och där får jag 8 som svar, alltså textsträng.

Är det då inte himla konstigt att isNumeric ger true hela tiden?
Vad ska jag göra?

Tack på förhand!

Permalänk: https://www.webforum.nu/p/1878112

## #6 — dAEk, 2006-10-07T17:20Z

> **Dokumentationen skrev:**
>
> isNumeric() - Returns a Boolean value indicating whether an expression can be evaluated as a number.

Vill du enbart tillåta siffror får du ta till regexp, t.ex:

```
function isDigits(str)
	Dim regExp
	Set regExp = new RegExp
	regExp.pattern = "^\d+$"
	isDigits = regExp.test(str)
end function
```

Koden ovan är inte testad men bör fungera.

Permalänk: https://www.webforum.nu/p/1878114

## #7 — MickeA.com, 2006-10-07T17:28Z

Men då säger väl dokumentationen fel..?
Strängen "575 kr" kan väl inte på något sätt vara "evaluated as a number" ??

Permalänk: https://www.webforum.nu/p/1878118

## #8 — dAEk, 2006-10-07T17:38Z

VBS anpassar sig efter systemets inställningar. Byter jag till engelska returnerar skriptet false medan det envisas med att returnera true när jag kör på svenska, så jag antar att det tolkar "754 kr" som just kronor? Jag vet inte, det var rätt länge sedan jag pysslade med VBS.

**/r** Fast å andra sidan verkar det rätt konstigt. "kr 754" returnerar också true.   :q

Permalänk: https://www.webforum.nu/p/1878121

## #9 — MickeA.com, 2006-10-07T18:47Z

Jo, skitkonstigt.
Skulle vara intressant att få reda på vad det här beror på, man tycker ju att en sådan funktion ska vara tillförlitlig.
Nu undrar man ju pass bra det här eg. fungerar, om man ser till trådskaparens problem, att kolla om ?id verkligen är ett nummer.

Det är ju isf. inte alls en bra lösning på problemet.

Tack!

Permalänk: https://www.webforum.nu/p/1878145

## #10 — dAEk, 2006-10-08T16:48Z

> **MickeA.com skrev:**
>
> Nu undrar man ju pass bra det här eg. fungerar, om man ser till trådskaparens problem, att kolla om ?id verkligen är ett nummer.

Inte bra alls isf eftersom exempelvis skulle släppas "12e3" igenom. Bokstaven 'e' är ingen siffra men 12e3 är ett giltigt tal. Vill man släppa igenom siffror och endast siffror, då är ett regExp lösningen. isNumeric() kan vara användbart i många fall men inte här.

Permalänk: https://www.webforum.nu/p/1878394

---

Tråden på webben: https://www.webforum.nu/amne/asp/120626-eventuellt-säkerhetshål-som-jag-inte-tänkt-på
