webForumDet fria alternativet

Fråga ang. databas säkerhet

ASP

6 svar · 159 visningar · startad av jerry_beach

Medlem sedan apr. 200147 inlägg
Frågan#1

Jag har ju fått höra att att man bör ersätta ' med '', och ta bort | (det vertikala strecket) helt när man ska lägga in data i databaser. Men är det VERKLIGEN nödvädigt?
För då måste man ju ta bort ett ' när man sedan matar ut det på nån sida.
Kan ju kännas onödigt om det inte är nödvändigt (?) Ja ni förstår säkert vad jag menar ;)

------------------
"Den som bäddar vänder ofta liten tuva, om och om igen"

Medlem sedan feb. 20012 412 inlägg
#2

Hej,

eftersom ' ställer till beskymmer i ASP, pga att det betyder kommentar får du göra om det tecknet när du lägger in data i datbasen. Du behöver inte ändra något när du matar ut datan.

Function FixaTecken(sText)
sText = replace(sText,"'","''")
sText = Replace(sText, "|", "")
FixaTecken = sText
End Function

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan apr. 200147 inlägg
#3

När jag hämtar en sträng från min databas som innehöll ett ' och skriver ut det så blir det 2 ', alltså skriver den ut det som var där från början OCH det som min funktion la till.
Och så ska det väl inte va egentligen?
Well, så är det :(

------------------
"Den som bäddar vänder ofta liten tuva, om och om igen"

Medlem sedan dec. 200012 464 inlägg
#4

Du skall inte använda den funktionen när du skriver ut data, bara när du bygger ditt sql-statement som lagrar data.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 200147 inlägg
#5

Men alltså.. jag använder ju funktionen innan datan lagras i databasen. Men.. du menar kanske att jag bör göra på nåt annat sätt? Jag trodde hela poängen var att man ersatte 1' med 2'' för att databasen skulle bli säker, men det har tydligen att göra med själva ASPn, inte databasen.
Skulle du kunna ge mig nåt exempel på hur jag bör använda funktionen LarsG?

------------------
"Den som bäddar vänder ofta liten tuva, om och om igen"

Medlem sedan dec. 200012 464 inlägg
#6

om ditt insert-statement ser ut så här

insert into ogrish(aleb) values ('x''a')

så lagras bara x'a i databasen. Det är bara för att det inte skall bli fel i sql-satserna som man lägger till en extra '.

------------------
essentitia preter non sans multiplicandum

Medlem sedan apr. 200147 inlägg
#7

Aha.. Då vet jag varför det blir 2'' istället för 1. Jag använder RecordSet för att uppdatera/lagra data. Jag vet att det är betydligt långsammare och jag har tänkt börja lära mig lite mer avancerad SQL, men det har inte blivit av.
Det är nog dags nu ;)
Tack för hjälpen.

------------------
"Den som bäddar vänder ofta liten tuva, om och om igen"

271 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)