---
title: "Hjälp med funktion mot sqlinjekt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/134377-hjälp-med-funktion-mot-sqlinjekt"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Nova"
published: "2005-09-16T06:08:22.000Z"
updated: "2005-09-16T06:46:20.000Z"
replies: 3
views: 382
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/134377-hjälp-med-funktion-mot-sqlinjekt"
---

# Hjälp med funktion mot sqlinjekt

## #1 — Nova, 2005-09-16T06:08Z

Hittade denna här på forumet av Erik Juhlin

```
Function CheckInputData(ByVal sInputData)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Pattern = "[^\s\d,]"
	CheckInputData = Not objRegExp.Test(sInputData)
	Set objRegExp = Nothing
End Function

If Not CheckInputData(participantId) Then
	Response.Write "Incorrect input data."
	Response.End
End If
```

Denna kod 

```
 where id = " & CheckInputData(request.QueryString("id")) & " AND anv_nr = " & session("anv_nr") & ""
```

Ger

```
DELETE from hund_dagkoppling where id = True AND anv_nr = 90
```

Men id bör ju vara en siffra och inte true, för då tar det alla, varför blir det tokigt?

//Kockar som jag ska koka soppa inte hålla på med hemsidor!

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

## #2 — @nders, 2005-09-16T06:17Z

Funktionen kontrollerar bara om värdet är giltigt, och gör inga ändringar på något värde. Exempel:

```
lID = request.QueryString("id")
If CheckInputData(lID)  then
      ' ok, då kör vi...
      ".....where id = " & lID & " AND anv_nr = " & session("anv_nr") & ""
End if
```

...Om jag tolkar funktionen rätt vill säga.

mvh

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

## #3 — Nova, 2005-09-16T06:31Z

Tackar @nders
Tur att detta forum finns:)

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

## #4 — Erik Juhlin, 2005-09-16T06:46Z

Dock är just den funktionen endast tänkt att validera kommaseparerade strängar som man använder i SQL.
För vanliga numeriska tal så är det smidigare att bara köra med CLng.

```
lID = CLng(request.QueryString("id"))
where id = " & lID & " AND anv_nr = " & CLng(session("anv_nr"))
```

Det funkar i.o.f.s. att skriva så som @nders skrev eftersom att mellanslag och kommatecken inte kan göra någon skada. Men som sagt är den gjort för kommaseparerade strängar. De kan man inte typkonvertera, då får man göra nåt liknande som funktionen jag gjort.

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/134377-hjälp-med-funktion-mot-sqlinjekt
